Comment définir un tableau d'objets anonymes dans CoffeeScript? Est-ce possible du tout, en utilisant la syntaxe YAML?
Je sais qu'avoir un tableau d'objets nommés est assez simple:
items:[
item1:
name1:value1
item2:
name:value2
]
Cependant, ce serait un peu plus compliqué, si ces deux objets n'avaient pas de noms
coffeescript
Preslav Rachev
la source
la source
Simple - placez une virgule seule dans une colonne inférieure à celle dans laquelle vous définissez vos objets.
Va devenir:
la source
[
à gauche de la ligne suivante, c'est assez déroutant telVous pouvez également ajouter une virgule entre chaque objet:
la source
Je pense que la solution par virgule est meilleure, mais j'ai pensé que j'ajouterais ceci pour être complet:
la source
Vous pouvez définir une variable lors de la définition du tableau, donc une réponse laide serait:
Cela fonctionnerait, mais vous pourriez recevoir des avertissements concernant "les variables définies, mais non utilisées (item1, item2)". La meilleure façon serait d'utiliser le trait de soulignement, variable utilisée pour omettre les variables non utilisées:
console.log JSON.stringify(a)
produira ceci:la source
Ce n'est pas une réponse à la question de l'OP, mais juste au cas où vous seriez ici pour la même raison que moi ... Si vous êtes à court de Mountain Dew et utilisez '=' au lieu de ':', alors Coffeescript transformera votre tableau d'objets dans un tableau plat sans erreur de compilation:
Produit
Insérez plus de Mountain Dew et remplacez le '=' par ':'.
la source
Je suis très heureux d'annoncer après un peu de bidouillage que je pourrais obtenir ceci pour compiler juste correctement:
Il en résulte exactement ce à quoi vous vous attendez: une liste de deux objets anonymes.
la source
J'ai rencontré un problème connexe et j'ai trouvé cette solution. Si vous voulez un tableau de plusieurs objets k / v simples sans accolades, indentez simplement certains d'entre eux. Semble faire l'affaire.
Produit:
C'est contre-intuitif pour moi; on pourrait penser que cela créerait des sous-objets, mais je pense que la virgule à la fin de la ligne lui dit d'arrêter de créer des propriétés sur cet objet.
la source
Python
c'est ma «première langue», je n'ai pas peur d'utiliser quelques crochets et accolades supplémentaires. Même si Coffeescript n'en a pas besoin, je les trouve utiles. Votre deuxième bloc est plus lisible.Pourquoi pas:
C'est toujours une énorme amélioration pour moi par rapport à js, très facile à lire, minimal et assez sûr à écrire.
la source