Subscribe to:

The Kiwi's TaleWitchBlasterDerelict Blow Stuff Up

Getter and Setter Properties in Monkey

Monkey has a lot of curious functionality that I'm still discovering.

For instance, recently I discovered that you can do properties by treating Methods as Fields, and even have multiple setters to handle different types of value. For example, this Monkey code:



Function Main()


     'Note that myClass is implicitly typed, similar to C# var keyword.

     Local myClass:= New MyClass

     myClass.MyString = "HELLO WORLD!"

     Print myClass.MyString

     myClass.MyString =["Ignore this", "Print this", "But ignore this too"]

     Print myClass.MyString




Class MyClass




     'Getter, returns the value with numbers on the end

     Method MyString:String()

          Return _myString + " 12345"



     'First Setter, converts the value to lower case

     Method MyString:Void(value:String)

          _myString = value.ToLower()



     'Second Setter, grabs the second element from a string array

     Method MyString:Void(value:String[])

          _myString = value[1]





     'Private field

     Field _myString:String



Will print:

hello world! 12345

Print this 12345