2010-07-26 109 views
6

我可以表达如何在YAML中指定范围?

第三页是标题页

在YAML

title: 3 

怎么样以下?

10至15页包含第1章

一种方法是

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

我会喜欢这里的范围。 YAML中有这样的东西吗?

chapter 1: (10..15) 

** **更新

以下将是我的选择,如果有是范围YAML

chapter 1: 
    start page: 10 
    end page: 15 
没有这样的事情
+0

为什么不只是'第1章:[10,15]'?然后在Ruby中创建一个将列表转换为范围的函数? – hirolau 2016-08-06 14:02:45

回答

11

没有指定在YAML范围直接的方式,但是一些YAML可以存储序列化对象,例如在Ruby中:

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

Look here

+0

Thx。但这对我并不好。我很惊讶在YAML规范中没有想到这么简单的事情。或者可能是所有的红宝石主义者认为范围是这样一个基本的东西! :-) – rpattabi 2010-07-26 17:17:29

+0

你在用什么语言? – 2010-07-26 17:55:54

+0

我正在使用Ruby。但我宁愿让这个yaml文件易于编辑用户。 !ruby/range会吓到用户。 – rpattabi 2010-08-10 07:12:55

3

范围是特定于应用程序的。以下可以用于一些应用中是有意义的:

-1。Q

一个..Щ

23 .. -23.45

1 .. 12时01分14秒(都是在整数YAML)

但红宝石方式也不清楚,因为它没有说最终值是否包括或不包括:10 ... 15

(你只谈论响整数?)

+0

对于你的问题,即使是整数范围也适合我。红宝石的范围并不清楚。它有两个包含独占范围的语法。 (1..5)包括在内; (1 ... 5)独占 – rpattabi 2010-08-10 07:10:30

1

安德烈是对的 - 没有这样的东西作为基本范围。范围可以在之上定义完全排序的数据类型。 YAML甚至不知道排序的概念,因此在YAML中讨论范围是没有意义的。 YAML只知道节点类型的概念,平等的概念以及节点之间的一些预定义类型的链接。顺便说一下,我不知道本地支持范围的任何其他数据序列化语法(JSON,XML,CSV,Hessian,Protocol Buffers ...)。