在JS中创建文字数组时:
[{ name: 'david', value: 'blue' }, { name: 'harold', value: 'orange' }]
我能在Coffeescript中看到写这篇文章的唯一方法是:
[
name: 'david'
value: 'blue'
,
name: 'harold'
value: 'orange'
]
对我而言,这是非常丑陋的,“漂浮”的逗号并不是很好。有没有替代语法?我知道你可以继续在Coffeescript中使用JS风格的方法,但我希望更简洁。
答案 0 :(得分:14)
我不记得为什么会这样,或者即使它对你有用,但它是你正在编写的代码的另一种选择。
[
{}= name: 'david', value: 'blue'
{}= name: 'harold', value: 'orange'
]
这也奇怪似乎有效。我确信这有一个简单的原因,但我不确定。
[
{}=
name: 'david'
value: 'blue'
{}=
name: 'harold'
value: 'orange'
{}=
name: 'david'
value: 'blue'
]
答案 1 :(得分:11)
这是每个CoffeeScript开发人员似乎遇到的一件事。
我担心这就是我们现在所拥有的一切。我能想到的唯一另一种选择是:
[
{ name: 'david', value: 'blue' }
{ name: 'harold', value: 'orange' }
]
......但它远非理想本身。
如果有人想建议一种替代的,简洁的CS-y语法,我很乐意尝试在解析器中实现它并为它做一个pull请求。我希望比这更好。
答案 2 :(得分:8)
要删除对象文字中的逗号,您可以选择:
[
{
name: 'david'
value: 'blue'
}, {
name: 'harold'
value: 'orange'
}, {
name: 'david'
value: 'blue'
}
]
或者,如果你真的讨厌逗号:
[
{
name: 'david'
value: 'blue'
}
{
name: 'harold'
value: 'orange'
}
{
name: 'david'
value: 'blue'
}
]
虽然我个人觉得浮动逗号,缩进一级,看起来不那么糟糕:
[
name: 'david'
value: 'blue'
,
name: 'harold'
value: 'orange'
,
name: 'david'
value: 'blue'
]
我认为当对象文字开始和结束时它很明显,它也几乎不可能忘记对象文字之间的逗号= D
答案 3 :(得分:0)
我在coffeescript中幼稚地尝试做的事情是这样的:
arrayOfLiterals =
'somekey': 'someval'
'otherkey': 'otherval'
'keyInOtherArrayElement': 'andItsVal'
'yetMoreInSecondElement': 'andItsVal'
'thirdElement': 'val'
'fourthElement': 'val'
这是我的两分钱