eachin 2d array[][]?
Monkey Forums/Monkey Beginners/eachin 2d array[][]?
| ||
trying to change the value in a 2d array this works map[3][5] = 1 this doesnt for local i:= eachin map for local j:= eachin map map[i][j] = 1 end end ??? |
| ||
It is a little bit confusing, but you have arrays in arrays and not 2d arrays like in other languages. So you have to do it like: for local j:= eachin map[i] ... as map[i] is one of the inner arrays (btw. not tested) |
| ||
no doesnt work i not declared |
| ||
My fault. You have to options of dealing with arrays. One is with Eachin, where you get the elements of the array. The other is to access the element by its index. I prefer number two, if it is getting more complex, because there you are dealing with the elements of the array itself and not with copies of them. Strict Function Main:Int() Local map:String[][] =[["aa", "ab", "ac"],["ba", "bb", "bc"],["ca", "cb", "cc"]] Print "First version: " For Local i:String[] = EachIn map For Local j:String = EachIn i Print j End End Print "" Print "Second version: " For Local i:Int = 0 Until map.Length() For Local j:Int = 0 Until map[i].Length() Print map[i][j] End End Return 0 End |
| ||
Just to note: Monkey's array method is not unusual nowadays - it is pretty much the same as Java, for example. If anything I would say that the 'flat' C-style arrays are less common nowadays. |
| ||
second one is the winner for me seems easier to understand and works fine, thanks phil7 |
| ||
speaking of java i think im gonna dive into other languages java/javascript at least for learning, so many tutorials out there i should pick up some new tricks. to much grinding to learn here right now |
| ||
The more languages you learn, the easier new ones come! Java is actually quite a lot like Monkey in many ways, the differences are more in the syntax (Basic-like for Monkey, C-like for java) than in the structure (Objects, methods and such-like are very similar). |