sf

轻量快速的脚本语言 - 字节码 VM / 680+ 内置函数 / AI 友好 / 跨平台

📂 开发工具#编程语言#脚本#解释器#跨平台#AI#开发工具📅 2026-8-30

快速开始

📅 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)、有序 Map map{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("函数名") 查详情——运行时自省,无需翻文档。