2010-07-26 14 views
6

mogę wyrazićJak określić zakresy w YAML?

3 strona jest strona tytułowa

w YAML

title: 3 

Co o następujące?

Strony 10 do 15 zawiera dział 1

Jednym ze sposobów jest

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

wolałbym szereg tutaj. Czy jest coś takiego w YAML?

chapter 1: (10..15) 

** Aktualizacja **

Poniższy byłaby moja alternatywą, jeśli nie ma czegoś takiego jak zasięg w YAML

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

Dlaczego nie tylko "rozdział 1: [10,15]'? Następnie utwórz funkcję w Ruby, która zamienia listę na zakres? – hirolau

Odpowiedz

11

Nie istnieje bezpośredni sposób określania zakresów w YAML ale niektóre YAML może przechowywać odcinkach obiektów, na przykład w Ruby:

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

Look here

+0

Thx. Ale to nie jest dobre dla mnie. Jestem zaskoczony, że tak prostej rzeczy nie myśli się w specyfikacji YAML. A może wszyscy rubyści uważają, że zasięg jest tak podstawową rzeczą! :-) – rpattabi

+0

Jakiego języka używasz? –

+0

Używam Ruby. Ale wolałbym, aby ten plik yaml był czytelny do edycji dla użytkownika. ! ruby ​​/ range przestraszy użytkownika. – rpattabi

3

Zasięg zależy od aplikacji. Następujące elementy mogą być istotne dla niektórych aplikacjach

-1 .. P

w .. Щ

23 .. -23,45

1 .. 12:01:14 (oba całkowitymi w YAML)

Ale sposób Ruby jest również jasne, ponieważ nie powiedzieć, czy wartości końcowe są włączone czy nie: 10 .. 15

(mówisz tylko o rang es liczb całkowitych?)

+0

Na twoje pytanie, nawet zakresy liczb całkowitych by mi pasowały. Zakres Ruby nie jest niejasny. Ma on zarówno składową wyłączną zakres zakres. (1..5) włącznie; (1 ... 5) wyłącznie – rpattabi

1

Andrey ma rację - nie ma czegoś takiego jak podstawowy zakres. Zakresy można zdefiniować jako na górze całkowicie uporządkowane typy danych. YAML nie zna pojęcia zamawiania, więc nie ma sensu mówić o zakresach w YAML. YAML zna tylko pojęcia typów węzłów, pojęcie równości i niektóre wstępnie zdefiniowane rodzaje połączeń między węzłami. Nawiasem mówiąc, nie znam żadnej innej biblioteki serializacji danych (JSON, XML, CSV, Hessian, Protocol Buffers ...), która natywnie obsługuje zakresy.