Yuck语法

Yuck语法特性

例子

(box
  "Some math: ${12 + foo * 10}"
  (button :class {button_active ? "active" : "inactive"}
          :onclick "toggle_thing"
    {button_active ? "disable" : "enable"}))

语法

  1. 数学运算符+,-,*,/,%

  2. 比较运算符==,!=,>,<,>=,<=

  3. 布尔运算符||,&&,!

  4. 正则匹配操作符=~

  5. 埃尔维斯运算符?:

    如果运算符左侧是""或者是一个为null的JSON,该运算符返回右侧的值,否则返回左侧的值。

  6. 安全访问运算符?.?.[index]

    1. 如果运算符左侧是""或者是一个为null的JSON,该运算符返回null,否则会尝试获取index的值。

    2. 当运算符左侧存在但不是对象时,该运算符也可能出现错误。(比如:Number或者String

  7. 三元运算符condition ? 'value' : 'other value'

  8. 数字(Number),字符串(String),布尔变量(Boolean)和变量(Variable reference)(12, 'hi', true, some_variable)

  9. JSON访问

    1. object.field

    2. array[index]

    3. object["field"]

  10. 内置函数

    1. round(number, decimal_digits):对一个数约到制定的位数。

    2. sin(number), cos(number), tan(number), cot(number):三角函数(以弧度为单位)。

    3. degtorad(number):将角度转换成弧度。

    4. radtodeg(number):将弧度转换为角度。

    5. replace(string, regex, replacement):在字符串中匹配指定的模式。

    6. search(string, regex):在字符串中搜索指定的模式(返回一个数组)。

    7. matches(string, regex):判断给定的字符串是否匹配给定的正则表达式(返回布尔值)。

    8. captures(string, regex)

    9. strlength(string):获取字符串的长度。

    10. substring(string, start, length):获取指定位置的子串。

    11. arraylength(value):获取数组的长度。

    12. objectlength(value):获取对象中字段的个数。

    13. jq(value, jq_filter_string):在JSON值上执行jq样式的命令。

    14. formattime(unix_timestamp, format_str, timezone):从 UNIX 时间戳获取给定格式的时间。

    15. formattime(unix_timestamp, format_str):从 UNIX 时间戳获取给定格式的时间。与formattime相同,但不接受时区。(对于formattime,查看chrono文档以查看有关格式字符串的更多信息,并查看chrono-tz文档以查看可用时区)

最后更新于

这有帮助吗?