项目简介
Q 语言(Q Language)是专为 Go 语言设计的嵌入式脚本语言,以微内核架构为核心设计理念,所有功能以可插拔模块形式提供。它支持 Go 语言的绝大部分特性,能直接调用 Go 语言的函数、类及其成员变量和方法,无需额外包装。主要应用于嵌入式脚本领域(如网络游戏中的脚本引擎)以及编译原理的教学实践。
项目的主要特性和功能
- 与 Go 语言无缝互操作,可直接调用 Go 语言的函数、类及其成员变量和方法。
- 微内核架构,核心代码约 1200 行,功能可按需定制。
- 支持 Go 语言的
for range
、slice
、map
、chan
、goroutine
、defer
等特性。 - 可作为嵌入式脚本语言,与 Go 语言应用程序无缝集成。
- 提供命令行工具
qlang
,能执行.ql
脚本文件并支持导出编译后的“汇编指令”。 - 支持模块化设计,可通过
import
和include
语句组织代码。 - 支持反射,可通过
type
函数查看变量实际类型,便于调试和学习。
安装使用步骤
1. 安装 Q 语言
通过 Go 安装
bash
go get -u -insecure qlang.io/qlang
通过 Git 复制源码
bash
2. 在 Go 代码中集成 Q 语言
```go import ( "fmt" "qlang.io/cl/qlang" _ "qlang.io/lib/builtin" // 导入 builtin 包 )
const scriptCode = x = 1 + 2
func main() { ql := qlang.New() err := ql.SafeExec([]byte(scriptCode), "") if err != nil { // 错误处理 return }
fmt.Println("x:", ql.Var("x")) // 输出 x: 3
} ```
3. 使用 Q 语言命令行工具
执行 Q 语言脚本
bash
qlang example.ql
导出编译后的“汇编指令”
bash
QLANG_DUMPCODE=1 qlang example.ql
进入 Q 语言交互式 Shell
bash
qlang
4. 学习 Q 语言
- 参考 Q 语言手册 详细了解 Q 语言的语法和特性。
- 项目
tutorial
目录包含示例代码,可供学习参考。
5. 定制 Q 语言
```go import ( "qlang.io/lib/math" "qlang.io/lib/strconv" "qlang.io/lib/strings" )
func main() { qlang.Import("math", math.Exports) qlang.Import("strconv", strconv.Exports) qlang.Import("strings", strings.Exports)
// 其他代码
}
``
通过上述方式,可在 Q 语言中使用
math.sin、
strconv.itoa` 等函数。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】