Maps. expecting class member declaration.
Monkey Forums/Monkey Programming/Maps. expecting class member declaration.
| ||
While following along in Jim's most excellent video tutorials: http://www.youtube.com/watch?v=VHr90rUZvwg I get this error when trying to compile. Syntax error - expecting class member declaration. Since the video is a year old or more, I guess something has changed in Monkey where what he shows is no longer valid. Class PersonMap<T> Extends Map<Int, T> Method Compare(key1:Int, key2:Int) Return key1 - key2 Return End Function Main:Int() Local people:PersonMap<String>= New PersonMap<String>() people.Add(24601,"Fred") people.Add(12345,"Sally") people.Set(43124,"Gary") people.Set(12345,"Sallyann") people.Get(12345) For Local key:Int = Eachin people.Keys() Print("ID: "+keys+" Name: "+people.Get(key)) End Return 0 End That being so, how would you "fix" the code above ? |
| ||
I think I see part of the problem but do correct me if I am wrong.. the keyword "Map" in no longer valid in Monkey. |
| ||
First a Method should End with End or End Method not a 'Return' and there is a syntax error within the print statement +keys+ should read +key+ And if you ran the code once fixed in Strict mode then it wouldn't work unless you defined the return type in Compare e.g Compare:Int Edit: You should aways use strict mode as this can trap any coding errors. |
| ||
You are so right dawlane. What a stupid loofa I must look like. LOL! I have been staring at code too long today. Class PersonMap<T> Extends Map<Int, T> Method Compare(key1:Int, key2:Int) Return key1 - key2 End End Function Main:Int() Local people:PersonMap<String>= New PersonMap<String>() people.Add(24601,"Fred") people.Add(12345,"Sally") people.Set(43124,"Gary") people.Set(12345,"Sallyann") people.Get(12345) For Local key:Int = Eachin people.Keys() Print("ID: "+key+" Name: "+people.Get(key)) End Return 0 End |