我想转换
console.log({
a: 'a'
}, {
b: 'b'
});
到CoffeeScript中。我发现的唯一方法是
console.log
a: 'a',
b: 'b'
a: 'a'
和b: 'b'
在这种情况下基本上是对称的时候,{{1}}和{{1}}并没有缩进,这似乎很奇怪。
答案 0 :(得分:30)
将逗号放在一个单独的行中,一个缩进级别小于的散列/对象,因此它被视为函数调用的一部分。
console.log
a: 'a'
, # indentation level matters!
b: 'b'
这不起作用,因为缩进级别与散列相同,因此它被视为散列的一部分。
console.log
a: 'a'
,
b: 'b'
答案 1 :(得分:12)
或者您可以使用在CS中起作用的大括号:
console.log {a:'a'}, {b:'b'}
答案 2 :(得分:1)
好吧,如果你考虑一下解析规则,
a: 'a',
b: 'b'
实际上意味着
{ a: 'a', b: 'b' }
由于这不是您想要的行为,您需要告诉解析器b:
行是另一个对象。缩进将为您做到这一点。现在这不是一个真正的问题,但我希望它能帮助你理解为什么要按照你描述的方式去做。这是正确的方式。
答案 3 :(得分:1)
$ coffee -bce 'console.log(a: "a"; b: "b")'
// Generated by CoffeeScript 1.2.1-pre
console.log({
a: "a"
}, {
b: "b"
});