B. 标准库

包含 apple、builtin、errors、regexp、runtime、syscall 等包的简要说明。

B.1 apple - 苹果派

apple 包用于展示最简单的包和测试的构造。

B.1.1 函数

func Apple => string
  • Apple 返回苹果的字符串

B.2 builtin - 内置包

凹语言中 boolintstringprintln 等都不是关键字,而是编译器内置的包定义。builtin 包中定义的名字都是小写字母开头,不需要 import 就可以使用。

B.2.1 类型

  • bool:布尔类似
  • u8:8比特无符号整数
  • u16:16比特无符号整数
  • u32:32比特无符号整数
  • u64:64比特无符号整数
  • i32:32比特有符号整数
  • i64:64比特有符号整数
  • int:有符号整数
  • uint;无符号整数
  • f32:IEEE754 单精度浮点数
  • f64:IEEE754 双精度浮点数
  • string:UTF8 编码的字符串
  • rune:字符,底层为 i32
  • byte:字节,底层为 u8
  • error:错误接口

B.2.2 常量

  • nil:空引用,可以用于切片、接口的比较。

B.2.3 函数

func print(args: ...Type)
func println(args: ...Type)

func new(Type) => *Type
func make(t: Type, size: ...IntegerType) => Type

func len(v: Type) => int
func cap(v: Type) => int

func append(slice: []Type, elems: ...Type) => []Type
func copy(dst, src: []Type) => int

func panic(msg: string)
  • print:打印基础类型
  • println:打印基础类型并换行
  • new:创新一个 Type 的实体并返回引用
  • make:创建切片,并返回引用
  • len:获取数组、切片、字符串等类型值的元素长度
  • cap:获取数组、切片的容量
  • append:向切片添加元素
  • copy:赋值切片
  • panic:泡出异常

B.3 errors - 错误包

errors 包用于创新一个可以表示字符串信息的错误对象。

B.3.1 函数

func New(text: string) => error
  • New 创建一个错误对象

B.4 regexp - 正则包

正则包是 Rob Pike 最小正则实现:https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html

B.4.1 函数

func Match(regexp, text: string) => bool

B.5 runtime - 运行时包

凹语言运行时类型和函数的实现。

B.5.1 常量

const WAOS = "..."
  • WAOS:凹语言目标OS名字,目前有 wasi、mvp 等

B.6 syscall - 系统调用包

凹语言不同目标平台提供的系统调用。通常是 runtime 或其他包封装 syscall 包的函数。