2010-07-26 3 views
6

Je peux exprimerComment spécifier des plages dans YAML?

3e page est la page de titre

en YAML

title: 3 

Qu'en est-ce qui suit?

Pages 10 à 15 contient le chapitre 1

Une façon est

chapter 1: [10, 11, 12, 13, 14, 15] 

Je préférerais une gamme ici. Y a-t-il quelque chose comme ça dans YAML?

chapter 1: (10..15) 

** Mise à jour **

Seraient mon alternative s'il n'y a pas une telle chose que la gamme en YAML

chapter 1: 
    start page: 10 
    end page: 15 
+0

Pourquoi ne pas simplement 'chapitre 1: [10,15]'? Puis créer une fonction dans Ruby qui convertit la liste en une plage? – hirolau

Répondre

11

Il n'y a pas moyen direct de spécifier des plages de YAML, mais certains YAML peut stocker des objets, par exemple un numéro de série dans Ruby:

... 
normal range: !ruby/range 10..20 
exclusive range: !ruby/range 11...20 
negative range: !ruby/range -1..-5 
... 

Look here

+0

Thx. Mais ce n'est pas bon pour moi. Je suis surpris de voir comment une chose si simple n'est pas envisagée dans les spécifications de YAML. Ou peut-être tous les rubis pensent que la gamme est une chose si basique! :-) – rpattabi

+0

Et quelle langue utilisez-vous? –

+0

J'utilise Ruby. Mais je préférerais que ce fichier yaml soit lisible par l'utilisateur. ! ruby ​​/ range effraiera l'utilisateur. – rpattabi

3

La plage est spécifique à l'application. Ce qui suit peut être utile pour certaines applications:

-1 .. Q

a .. Щ

23 .. -23,45

1 .. 12:01:14 (les deux sont entiers en YAML)

Mais le chemin rubis est pas clair car il ne dit pas si les valeurs finales sont incluses ou non: 10 .. 15

(vous ne parle que de rang des nombres entiers?)

+0

Pour votre question, même les plages entières feraient pour moi. La gamme Ruby n'est pas floue. Il a deux syntaxe de gamme exclusive inclusive. (1..5) inclusivement; (1 ... 5) exclusif – rpattabi

1

Andrey a raison - il n'existe pas de gamme de base. Les plages peuvent être définies en plus de types de données totalement ordonnés. YAML ne connaît même pas le concept de la commande, donc cela n'a aucun sens de parler de plages dans YAML. YAML ne connaît que le concept des types de nœuds, le concept d'égalité et certains types prédéfinis de liens entre nœuds. D'ailleurs je ne connais pas d'autre lange de sérialisation de données (JSON, XML, CSV, Hessian, Protocol Buffers ...) qui supporte nativement les gammes.

Questions connexes