Brook Shiliew Cheap Zhi Meeting Nan mitmproxy client Network Activity Monitor iOS Old App Downloader SSH Terminal Subtitle 菜根谭 Socks5 Configurator IPvBar File Link Markdown Editor IP AI nami joker brook ipio nico z zoro hancock mad httpserver google hosts

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


评论

© TxThinking, Inc. All Rights Reserved.