所以我试图得到一个多维数组在CoffeeScript工作。我试过用标准的Python列表推导符号,它让内括号变成字符串之类的东西。所以我不能用list[0][1]来获取1,而是用list[0][0] = '1,1'和list[0][1] = "
[[i, 1] for i in [1]]
使用类作为存储容器,然后获取x和y。这将为后一部分提供'undefined undefined',而不是' 11 1'。
class Position
constructor:(@x,@y) ->
x = [new Position(i,1) for i in [1]]
for i in x
alert i.x + ' ' + i.y#'undefined undefined'
i = new Position(1,1)
alert i.x + ' ' + i.y#'1 1'
能够使用点列表是非常需要的,我找不到一种方法来列出它们。我更喜欢使用一个简单的多维数组,但我不知道如何。
您只需要使用圆括号()
,而不是方括号[]
。
来自REPL:
coffee> ([i, 1] for i in [1])
[ [ 1, 1 ] ]
coffee> [[i, 1] for i in [1]]
[ [ [ 1, 1 ] ] ]
可以看到,使用方括号,就像在Python中一样,将生成表达式放在一个额外的列表中。
这是因为括号,()
实际上只存在于CoffeeScript中,当你想要将表达式分配给变量时,所以:
coffee> a = ([i, 1] for i in [1])
[ [ 1, 1 ] ]
coffee> a[0][1]
1
coffee> b = [i, 1] for i in [1]
[ [ 1, 1 ] ]
coffee> b[0][1]
undefined
另请参阅CoffeeScript Cookbook