|
|
2#

楼主 |
发表于 2007-10-9 10:42:28
|
只看该作者

在PHP或者RUBY中,可以这样访问:
print $mailbox['letters to']['Myself'];
将会打印:
2
你也发现了,"Hank Bros.: the Car Wash!"用双银号扩起来了,这是因为这里面包括了冒好。否则,会引起麻烦的,你将可能弄不清哪个是key 哪个是value。
第四分钟:更多消息
你从邮局得到了一些解释:
---
Concerning Car Washes: >
We are sorry to have misplaced this letter.
We were told by a reliable source that you
were the owner of "Hank Bros.: the Car Wash!".
Sorry.
邮局工作有误,但这也向我们展示了YAML的另一个特点:块(block )。在他们的信息里,用到了block。
在 YAML中,一个 block 是一段文本,它们缩进一个或多个空格。
注意这个大于号: >。它表示一个“folded block”的开始。所谓folded block,就是一行一行紧挨着句子将组成一个段落,这个段落就像我们读课文那样可以阅读的。
上面的消息在YAML 阅读器看来将分为两行,由一个回车换行分割。
Controlling Words
上面的消息还没完,这是后面的:
Concerning "Jim O'Connor": |
You are receiving Jim O'Connor's mail for several reasons:
- The nameplate on your mailbox still says his name.
- He has told our postman that you screen his mail.
- He is living in your ceiling.
- He held a raygun to the postmans head.
这看起来有点古怪,邮局的人用一个竖线,取代了原来的大于号,这有什么不同吗?
一个竖线(也称管道pipe),表示了一个literal block的开始。 literal block 表示每个句子自成一节,这个块将会像计算机读取那样,都是字面值。
YAML 阅读器会把上面的块当作5行(第一行是空行)。
第五分钟:这就是全部吗?
到现在,看起来YAML也就这么多东西而已,它只是一些列表和字典组成的集合而已?
这只是我们五分钟能谈论到的最基本的东西,在继续之前,来看最后一个概念。
这里是一个人读这个五分钟教程所用时间的纪录:
---
name: Dirk Hockeybranch
minutes spent:
- 1.02
- 1.34
- 0.7
- 0.89
- 0.94
上面我们用一个序列 (sequence)嵌套在了一个map中,序列中的每项代表了在第几步所用的时间。如果每个人都把自己阅读的时间像这样寄给我们,那我们需要给本教程准备一个更准确的名字,比如YAML in Five-Point-One-Two Minutes。这将有点华而不实。(我们可能需要很多的篇幅来写这样的文档。)
一个机灵的YAML用户可能会用 inline sequence来记录它们所用的时间:
---
name: Dirk Hockeybranch
minutes spent: [1.02, 1.34, 0.7, 0.89, 0.94]
对于短的列表,你可以把它们都房在一行里,各项之间用逗号分割,最后用中括号括起来。
Inline maps 也类似:
---
minutes spent: {one: 1.02, two: 1.34, three: 0.7,
four: 0.89, five: 0.94}
以上也要谨慎使用,BLOCK在inline sequences 或 Inline maps 中不能使用。
结论
看看时间,多长时间了?五分钟?还是十分钟?
如果你想更深入的学习YAML,我建议你去看看 YAML Cookbook,一本非常好的手册,它将会更详细的讲解YAML,你一定会惊奇于YAML提供的功能。
最后,谢谢你花时间来阅读这篇文章
译者注:以下是我找到的一些资源,可能对你有用
1.YAML老家: http://yaml.org/
2.XML 问题:YAML 对 XML 的改进:http://www-900.ibm.com/developer ... /part23/index.shtml
3.最近推出了 YAML 规范 1.0,在 http://yaml.org/spec/ |
|