跳到主要内容

标准库命名空间 sii

所有内建必须通过 sii. 调用;直接调用会在语义分析时报错。

文件与路径

  • readText(path: string): string

    • path: string — 文件路径
    • 返回: string — 文件内容
  • writeText(path: string, data: string): void

    • path: string — 文件路径
    • data: string — 写入文本
    • 返回: void
  • exists(path: string): obj

    • path: string — 路径
    • 返回: obj — 运行时布尔;类型系统标为 obj
  • mkdirs(path: string): void

    • path: string — 目录路径(递归创建)
    • 返回: void
  • pathJoin(a: string, b: string): string

    • a: string — 路径段
    • b: string — 路径段
    • 返回: string — 拼接路径

进程与环境

  • cwd(): string
  • env(key: string): string
    • key: string — 环境变量名
  • now(): int

JSON

  • jsonParse(text: string): obj
    • text: string — JSON 文本
  • jsonStringify(value: obj): string
    • value: obj — 对象

命令执行

  • exec(cmd: string): int
    • cmd: string — shell 命令
  • execOut(cmd: string): string
    • cmd: string — shell 命令

HTTP(简化内置)

  • get(path: string, handler: function|string): void
  • post(path: string, handler: function|string): void
  • listen(port: int): void
  • respText(res: obj, text: string): void
  • respJson(res: obj, value: obj): void
  • respHtml(res: obj, html: string): void

日志

—— 以下各小节提供签名、参数、返回、示例与注意事项 ——


文件与路径(详细)

签名

readText(path: string): string
writeText(path: string, data: string): void
exists(path: string): obj
mkdirs(path: string): void
pathJoin(a: string, b: string): string

参数

  • path: string — 文件或目录路径
  • data: string — 写入文本
  • a: string — 路径段
  • b: string — 路径段

返回

  • readText → string
  • writeText → void
  • exists → obj(运行时布尔)
  • mkdirs → void
  • pathJoin → string

示例

let p: string = "tmp.txt";
sii.writeText(p, "hello");
print(sii.readText(p));

注意事项

  • exists 的返回在类型系统中标为 obj,分支判断时按布尔处理。

命令执行(详细)

签名

exec(cmd: string): int
execOut(cmd: string): string

参数

  • cmd: string — shell 命令

返回

  • exec → 退出码(int)
  • execOut → 标准输出(string)

示例

print("code=", sii.exec("node -v"));
print("out=", sii.execOut("node -v"));

注意事项

  • exec 在部分命令下可能阻塞当前进程;错误码需自行判断。

HTTP(详细)

签名

get(path: string, handler: function|string): void
post(path: string, handler: function|string): void
listen(port: int): void
respText(res: obj, text: string): void
respJson(res: obj, value: obj): void
respHtml(res: obj, html: string): void

参数

  • path: string — 路径(完全匹配)
  • handler: function|string — 处理函数或函数名
  • port: int — 端口
  • res: obj — 响应对象
  • text: string — 文本
  • value: obj — JSON 对象
  • html: string — HTML 文本

返回

  • 全为 void

示例

sii.get("/", "home");
func home(req: obj, res: obj): void {
sii.respText(res, "OK");
}
sii.listen(3000);

注意事项

  • 路由采用“严格相等”匹配;未匹配返回 404。
  • 运行期基于 Node.js http;在 IDE 内可直接运行测试。
  • log(...): void
  • warn(...): void
  • error(...): void