Yuck语法
Yuck语法特性
例子
(box
"Some math: ${12 + foo * 10}"
(button :class {button_active ? "active" : "inactive"}
:onclick "toggle_thing"
{button_active ? "disable" : "enable"}))
语法
数学运算符
+
,-
,*
,/
,%
比较运算符
==
,!=
,>
,<
,>=
,<=
布尔运算符
||
,&&
,!
正则匹配操作符
=~
埃尔维斯运算符
?:
如果运算符左侧是
""
或者是一个为null
的JSON,该运算符返回右侧的值,否则返回左侧的值。安全访问运算符
?.
或?.[index]
如果运算符左侧是
""
或者是一个为null
的JSON,该运算符返回null
,否则会尝试获取index
的值。当运算符左侧存在但不是对象时,该运算符也可能出现错误。(比如:
Number
或者String
)
三元运算符
condition ? 'value' : 'other value'
数字(Number),字符串(String),布尔变量(Boolean)和变量(Variable reference)(
12, 'hi', true, some_variable
)JSON访问
object.field
array[index]
object["field"]
内置函数
round(number, decimal_digits):对一个数约到制定的位数。
sin(number)
,cos(number)
,tan(number)
,cot(number)
:三角函数(以弧度为单位)。degtorad(number)
:将角度转换成弧度。radtodeg(number)
:将弧度转换为角度。replace(string, regex, replacement)
:在字符串中匹配指定的模式。search(string, regex)
:在字符串中搜索指定的模式(返回一个数组)。matches(string, regex)
:判断给定的字符串是否匹配给定的正则表达式(返回布尔值)。captures(string, regex)
:strlength(string)
:获取字符串的长度。substring(string, start, length)
:获取指定位置的子串。arraylength(value)
:获取数组的长度。objectlength(value)
:获取对象中字段的个数。jq(value, jq_filter_string)
:在JSON值上执行jq样式的命令。formattime(unix_timestamp, format_str, timezone)
:从 UNIX 时间戳获取给定格式的时间。formattime(unix_timestamp, format_str)
:从 UNIX 时间戳获取给定格式的时间。与formattime
相同,但不接受时区。(对于formattime
,查看chrono文档以查看有关格式字符串的更多信息,并查看chrono-tz文档以查看可用时区)
最后更新于
这有帮助吗?