快速开始
📅 2026-8-30
一键安装
Linux / macOS:
curl -fsSL https://magicdo.top/install/sf.sh | bash
Windows (PowerShell):
irm https://magicdo.top/install/sf.ps1 | iex
REPL
$ sf
Sflang REPL 0.1.0(.help 查看帮助;exit 或 Ctrl-D 退出)
sf> 1 + 2 * 3
7
sf> pln("你好,${env:同名变量可直接插值}")
sf> help("strSplit") // 查任意内置函数文档
sf> exit
执行脚本
sf script.sf # 执行脚本文件(脚本参数从 argsG 读取)
sf -e 'pln(1 + 2)' # 直接执行一行代码
sf --list-builtins # 全部内置函数清单(可按分类筛选)
语法速览
- 变量:
var x = 42,动态类型,undefined表示空值(x ?? "默认") - 分支:
if / elif / else;循环:for i in range(5)、for i, v in arr、while、switch - 函数:
func add(a, b) { return a + b },支持默认参数、可变参数、闭包 - 集合:数组
[1,2,3]、对象{k: v}(可挂方法做轻量 OOP)、有序 Mapmap{k: v} - 字符串:
"插值 ${expr}"、反引号 Raw 多行、三引号多行 - 错误:返回
error值用isErr判断;也支持try/catch/finally与defer - 并发:
run func() { ... }起线程,Channel / Mutex / WaitGroup 全套
内置函数(680+,无需 import)
| 分类 | 代表函数 |
|------|----------|
| 字符串/数组 | strSplit、strJoin、strReplace、filter、map、sort、contains |
| 文件/目录 | readFile、writeFile、getFileList、joinPath、copyFile |
| 网络 | getWeb、postJson、downloadFile、FTP、SSH/SFTP、TCP |
| 数据库 | dbConnect/dbQuery(SQLite/MySQL/PostgreSQL/MSSQL/Oracle) |
| 加密哈希 | aesEncrypt、md5、sha256、rsaEncryptRaw、base64、JWT |
| 时间 | nowDT、formatTime、datetimeParse、dtAddDays |
| 并发 | run、newChannel、chanSend/chanRecv、newMutex、newWaitGroup |
| 办公文档 | excel 读写、docx 模板替换、CSV、XML、ZIP |
help() 总览、help("分类") 浏览、help("函数名") 查详情——运行时自省,无需翻文档。