基本类型

string

string 表示文本,不是字节数组。

let name: string = "world";
let greeting: string = `hello ${name}`;

规则:

  • 使用 "..." 声明普通字符串
  • 支持插值字符串 `...${expr}...`
  • 支持比较运算
  • 不支持算术运算
  • 不支持下标访问
  • 不支持直接 for in 迭代

普通字符串支持这些转义:

  • \\
  • \"
  • \n
  • \r
  • \t
  • \u{...}

rune

rune 表示单个字符,是独立基础类型,不等同于长度为 1 的 string

let a: rune = 'a';
let c: rune = '你';

规则:

  • 使用 '...' 声明
  • 转义展开后必须恰好对应一个字符
  • 支持比较运算
  • 不做隐式数值化

rune 支持这些转义:

  • \\
  • \'
  • \n
  • \r
  • \t
  • \u{...}

int

int 是当前唯一公开整数类型。

let age: int = 25;
let count: int = -10;

规则:

  • 当前整数类型只有 int
  • 支持 + - * / %
  • int / int -> int
  • 不与 float 混合运算

float

float 是双精度浮点数。

let pi: float = 3.14;
let ratio: float = 0.5;

规则:

  • 支持 + - * /
  • 不支持 %
  • 不与 int 混合运算
  • 显式转换可使用 int(x)float(x)

bool

bool 表示真或假。

let ok: bool = true;
let done: bool = false;

规则:

  • 支持 == / !=
  • 不支持大小比较
  • 可用于 if&&||!

插值字符串

插值字符串整体类型是 string

let name = "Alice";
let count = 3;
let msg = `hello ${name}, count=${count}`;

当前插值允许任意类型,但采用展示语义,不是序列化语义。