Brook 为什么选择 Tengo 作为嵌入脚本语言

Updated at: 2023-11-17

背景

Brook 需要加入可编程功能,目的是可以用脚本以编程的形式灵活的控制整个流程。期间考虑了 lua 和 javascript,斟酌后发现两个都比较复杂,不够极简。于是准备写一个脚本语言,来实现几个极简的功能就足够了,比如类型,流程控制,函数。然后发现了 Tengo,基本符合预期,于是选了 Tengo。下面介绍下这个脚本语言,几乎没有任何学习成本,几分钟即可用起来。

变量

a := "foo"          // string
b := -19.84         // floating point
c := 5              // integer
d := true           // boolean
e := [1, 2, 3]      // array
f := {a: 1, b: 2}   // map

流程控制

if c == 1 {
    //
} else if c == 2 {
    //
} else {
    //
}

for i:=0; i<10; i++ {
    //
}

函数

add := func(a, b){
    return a + b
}
c := add(1, 2)

可以看出,函数也是个值类型,就像定义一个变量一样,挺好

内置函数

len(e)

更多内置函数

标准库

fmt := import("fmt")
fmt.println("hello")

所谓库,就是将一系列函数打包后起个名字,更多标准库

Playground

https://tengolang.com

例子

https://github.com/txthinking/bypass/blob/master/example_script.tengo

Brook and Shiliew

https://brook.app

https://www.txthinking.com/shiliew.html


评论