SuperAPI AI 工具集

amber-lang

编程与开发

查看项目

更新于 10-15 08:10

技能介绍

用途

本技能提供 Amber(amber-lang.com)的全面知识。Amber 是一门现代编程语言,可编译为 Bash 脚本。可用于编写、审查、调试、转换和解释 Amber 代码。当用户要求编写 Amber 脚本、调试 Amber 代码或解释 Amber 语言时使用。

主要能力

Amber 编译为兼容 Bash 3.2+ 的脚本,提供受 ECMAScript 启发的语法、类型安全和强制错误处理。

命令行接口:

  • amber run <file.ab>
  • amber build <in.ab> <out.sh>
  • amber check <file.ab>
  • amber eval '<code>'

Shebang:#!/usr/bin/env amber;文件扩展名:.ab。

类型:Text、Int、Num(需要 bc)、Bool、Null、[T](类型化数组,不可嵌套)。

关键语法模式:

  • let x = 10 —— 变量
  • const Y = 20 —— 常量
  • fun add(a: Int, b: Int): Int { } —— 类型化函数
  • fun risky(): Int? { fail 1 } —— 可失败函数(? 表示可能失败)
  • pub fun exported(): Null { } —— 公开/可导出函数
  • fun modify(ref arr: [Int]) { } —— 引用传参
  • $ command $ —— shell 执行
  • $ cmd $ failed(code) { } —— 错误处理(强制)
  • $ cmd $? —— 传播失败
  • import { fn } from "std/module" —— 标准库导入
  • import { fn } from "./file.ab" —— 本地导入
  • main (args) { } —— 入口点

修饰符:silent(抑制输出)、trust(跳过错误处理)、sudo(提权)。

控制流:if/else、if { cond: expr }(链式)、三元(x then a else b)、loop、for i in 0..n、while。

使用方式

代码风格指南:

  • 始终处理错误——对每个可失败操作使用 failed、succeeded、exited 或 ?
  • 使用类型化函数签名以提升清晰度
  • 优先使用标准库而非原始命令(例如用 file_read 而非 $ cat file $)
  • 使用 main 块,使脚本在被导入时也能正确工作
  • 对不变的值使用 const
  • 避免 trust——显式处理错误
  • 使用范围(0..n)而非手动计数器循环

适用场景

适用于需要编写、审查、调试、转换或解释 Amber 代码的场景,尤其是将 Amber 编译为 Bash 脚本、利用类型安全与强制错误处理构建 shell 脚本时。

限制

Num 类型需要 bc。类型化数组不可嵌套。资料未提供其他平台、收费或价格信息。

附加参考

  • 详细语法、类型、运算符和所有语言特性:references/syntax.md
  • 标准库文档:
    • references/stdlib-text.md —— 文本操作(split、replace、regex、trim、parse 等)
    • references/stdlib-array.md —— 数组操作(find、pop、shift、contains 等)
    • references/stdlib-fs.md —— 文件系统(read、write、glob、chmod、extract 等)
    • references/stdlib-env.md —— 环境、I/O、样式(环境变量、输入提示、彩色输出等)
    • references/stdlib-math-date-http.md —— 数学、日期/时间和 HTTP 操作
  • 真实示例脚本:references/examples.md