7 个版本
0.2.1 | 2023年4月9日 |
---|---|
0.2.0 | 2023年4月7日 |
0.1.7 | 2023年4月7日 |
0.0.0 | 2023年3月13日 |
#112 in 仿真器
83 每月下载量
130KB
3K SLoC
ZEN VM
GoRules 商务优先表达式语言解析器。该语言设计遵循以下原则
- 无副作用
- 动态类型
- 简单语法,易于大众理解
其主要目标是弥合业务分析师和工程师之间的差距,同时提供卓越的性能和可读性。
资源
单元测试
单元测试是一个以逗号分隔的简单表达式列表,其计算结果为布尔值。每个逗号分隔符被视为或运算符。在单元表达式中,存在一个特殊符号 $,它代表当前列。
一些示例
// Given: $ = 1
1, 2, 3 // true
1 // true
>= 1 // true
< 1 // false
[0..10] // true, (internally this is $ >= 0 and $ <= 10)
> 0 and < 10 // true
// Given: $ = 'USD'
'GBP', 'USD' // true
'EUR' // false
startsWith($, "US") // true - defaults to expression mode, comma is unavailable
endsWith($, "US") // false - defaults to expression mode
lower($) == "usd" // true - defaults to expression mode
标准测试
表达式提供了 ZEN 语言的全功能语法。它们允许您访问所有函数,并在定义列或输出时非常有用。当使用 $ 时(因为它强制表达式模式),单元表达式中也提供了全语法。
100 + 100 // 200
10 * 5 // 50
10 ^ 2 // 100
1 in [1, 2, 3] // true
5 in (5..10] // false
sum([1, 2, 3]) // 6
max([1, 2, 3]) // 3
"hello" + " " + "world" // "hello world"
len("world") // 5
weekdayString(date("2022-11-08")) // "Tue"
contains("hello world", "hello") // true
upper('john') // "JOHN"
some(['admin', 'user'], # == "admin") // true
not all([100, 200, 400, 800], # in (100..800)) // false
filter([100, 200, 400, 800], # >= 200) // [200, 400, 800]
依赖关系
~5.5MB
~93K SLoC