条件和变量|Conditions and Variables
你不能在段落变量部分使用插入或修饰符,因此不能编写如下代码:
[if 亲戚 > 10]
大家庭: true
--
你靠在椅背上,开始考虑需要邀请哪些人来参加这次聚会。
相反,有两种方法可以根据条件为变量赋值。首先,可以将变量赋值为比较结果,即真或假:
大家庭: 亲戚 > 10
--
你靠在椅背上,开始考虑需要邀请哪些人来参加这次聚会。
这段文字根据变量亲戚的值,将变量大家庭设置为 true 或 false 。然而,除了布尔值之外,您可能还想将变量设置为其他类型的值。为此,请在赋值中添加一个条件:
载具: '汽车'
载具 (里程 > 1000): '飞机'
--
你需要乘坐{载具}以到达那里。
此示例展示了关于变量部分的两个新特性:
- 您可以在单个变量部分中多次更改变量。Chapbook 会按照从上到下的顺序更改变量。
- 如果在冒号(
:)之前的括号内写入一个表达式,该表达式用于告诉 Chapbook 要设置的值需要在表达式评估为true时才会生效。
首先,交通工具被设置为汽车,然后,如果里程大于 1000,交通工具的值会立即被改为“飞机”。Chapbook 会按顺序处理每个变量赋值,中间不进行其他操作,因此这两个赋值实际上相当于一个操作。
这里有一个更复杂的例子,展示了多个赋值和条件如何协同工作。
语言: '未知语言'
语言 (国家 === '巴西'): '葡萄牙语'
语言 (国家 === '中国'): '普通话'
语言 (国家 === '埃塞俄比亚'): '阿姆哈拉语'
语言 (国家 === '俄罗斯'): '俄语'
语言 (国家 === '澳大利亚' || 国家 === '美国'): '英语'
--
{country}的官方语言是{language}。
尽管 Chapbook 会按照你编写的顺序设置变量,但通常这并不重要,因为你通常会编写相互排斥的条件——也就是说,只有一行会实际生效。
1. Truthfully, it is also possible to write[if stringVariable]or[if 2 + 2]. In these cases, any non-empty string (e.g. not'') is treated as true, and any non-zero number is treated as true. It's best to be explicit, however, and write[if stringVariable !== '']and[if 2 + 2 !== 0]. ↩