SWITCH
在字典或列表中查找值,并可指定找不到时使用的值。
语法
SWITCH(value,{case:result,case:result,…},otherwise)
SWITCH(value,{result,result,…},otherwise)
SWITCH(value,table,otherwise)
SWITCH(value,table)
| 参数 | 含义 |
|---|---|
| value | 要查找的内容。 |
| {case:result,…} | 一个字典:每种情况对应的结果。 |
| {result,…} | 一个列表:value 指定取哪个结果,从 0 开始。 |
| table | 任何得到字典或列表的表达式:例如保存字典或列表的变量。 |
| otherwise | 当 value 不是字典中的一种情况,也不是列表中的一个位置时给出的值(可选)。 |
结果
value 对应的结果,或 otherwise。
示例
在示例图纸中:
| 表达式 | 结果 |
|---|---|
SWITCH(2,{1:"one",2:"two"},"many") |
"two" |
SWITCH(5,{1:"one",2:"two"},"many") |
"many" |
SWITCH(L,{500:10,600:12},8) |
10 |
SWITCH(1,{"zero","one","two"},"many") |
"one" |
SWITCH(3,{"zero","one","two"},"many") |
"many" |
SWITCH(1.5,{"zero","one","two"},"none") |
"none" |
说明
未给出 otherwise 时,不在表中的值会出错。
表直接写在 SWITCH 中时,只计算需要的部分:依次计算各情况,直到有一个匹配,然后计算其结果(因此无法计算的结果,如除以 0,只要未被选中就不会造成问题)。保存在变量中的表会被完整计算。
列表的位置是从 0 开始的整数;任何其他值(1.5、-1、字符串)都会得到 otherwise。