Chiba Logo CHIBA v0.6.13
CHIBA blog RSS feed
CHIBA / DOCS / LEVEL-1 SPEC

UTF-8 语义与 Rune 级规则

这里集中展示 CHIBA level-1 specification,覆盖 core language、control flow、memory、patterns、IR lowering 与 package system 等实现边界。

The docs surface keeps CHIBA level-1 specification pages browsable inside the site, with direct paths into language, control flow, memory, pattern, and lowering rules.

UTF-8 语义与 Rune 级规则

语法

该条目描述字符串和字符相关文本的编码假设。

语义

level-1 把源文本固定为 UTF-8。

rune 是语言内表示单个 Unicode scalar value 的值类型。其运行时表示是 u32,但用户语义层使用 rune 名称,而不是把普通整数 API 当作字符 API。

str / String 保持 UTF-8 不变量;cstr 作为 ABI 边界类型,单独处理。

字符串主索引与主切片语义不按 rune 计数,而按字节区间工作,并要求 slice 边界落在合法 UTF-8 rune 边界上。

rune 级操作通过显式 API 提供,例如 char_atrune_len;它们不改变主 indexing / slicing 的语义。

Usage

let text = "你好a"
let bytes = text.bytes_len()
let chars = text.rune_len()

注释:这个例子刻意把字节长度与 rune 长度分开写,说明规范必须区分“UTF-8 编码后的字节数”和“文本层 Unicode scalar”的 API 语义。

let first: rune = text.char_at(0)
let byte0 = text[0]
let slice = text[0..4]

注释:char_at 是显式的 rune API;它不等价于主 indexing。text[0] 返回第 0 个 UTF-8 byte,text.char_at(0) 返回第 0 个 Unicode scalar 的 rune

边界

regex、chibalex 等文本工具应在“UTF-8 文本 + 显式 rune API”的前提上对齐,而不是把字符串本体退回任意字节串模型。