Como faço para definir uma matriz de objetos anônimos em CoffeeScript? Isso é possível, usando a sintaxe YAML?
Eu sei que ter uma matriz de objetos nomeados é muito fácil:
items:[
item1:
name1:value1
item2:
name:value2
]
No entanto, seria um pouco mais complicado se esses dois objetos não tivessem nomes
coffeescript
Preslav Rachev
fonte
fonte
Simples - coloque uma vírgula sozinha em uma coluna abaixo daquela em que você definiu seus objetos.
Se tornará:
fonte
[
à esquerda da próxima linha, é confuso o suficiente como está ..Você também pode adicionar um coma entre cada objeto:
fonte
Acho que a solução da vírgula é melhor, mas achei melhor adicionar isto para completar:
fonte
Você pode definir a variável enquanto define a matriz, então uma resposta feia seria:
Funcionaria, mas você pode obter avisos sobre "variáveis definidas, mas não usadas (item1, item2)". A melhor maneira seria usar o sublinhado, variável usada para omitir variáveis não usadas:
console.log JSON.stringify(a)
irá produzir isto:fonte
Não é uma resposta à pergunta do OP, mas apenas no caso de você estar aqui pelo mesmo motivo que eu ... Se você estiver com pouco Mountain Dew e usar '=' em vez de ':', então o Coffeescript mudará seu array de objetos em uma matriz plana sem um erro de compilação:
Produz
Insira mais Mountain Dew e substitua '=' por ':'.
fonte
Estou muito feliz em relatar, depois de mexer um pouco, que consegui fazer isso compilar corretamente:
O resultado é exatamente o que você esperava: uma lista de dois objetos anônimos.
fonte
Encontrei um problema relacionado e encontrei esta solução. Se você quiser uma matriz de muitos objetos k / v únicos sem colchetes, apenas indente alguns deles. Parece funcionar.
Produz:
É contra-intuitivo para mim; você pensaria que isso faria subobjetos, mas acho que a vírgula no final da linha diz para parar de fazer propriedades nesse objeto.
fonte
Python
é minha 'primeira língua', não tenho medo de usar alguns colchetes extras. Mesmo que o Coffeescript não precise deles, considero-os úteis. Seu segundo bloco é mais legível.Por que não:
Ainda é uma grande melhoria para mim em relação ao js, muito fácil de ler, mínimo e muito seguro de escrever.
fonte