Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions tutorial/01-basics/chinese_ident.kv
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// chinese_ident: 中文(Unicode)作标识符 —— 多级/嵌套 lib 名 / struct 名 / 函数名 / 字段名 / 变量名
// 语义: 词法器以「最长非分隔符字节串」切分标识符,凡非分隔符的 Unicode 字符(含中文)
// 均可用于任意标识符位置:包名、结构体名、函数名、参数名、字段名、局部变量。
// 路径分隔符 /、成员分隔符 ·、运算符仍是分隔符,故中文标识符与它们照常组合,
// 多级包名(数学/几何)与嵌套 lib(外层·内层)也一样支持中文。
// 期望输出:
// 相加 = 7
// 相加 = 30
// 嵌套问候
// 点 = 3.0 4.0
lib 数学/几何 {
rwfunc 相加(甲:int64, 乙:int64) -> (和:int64) {
甲 + 乙 -> 和
}
}

lib 外层 {
lib 内层 {
rwfunc 问候() -> () { println("嵌套问候") }
}
}

struct 点 {
横:float64=0.0
纵:float64=0.0
}

rwfunc test() -> () {
数学/几何·相加(3, 4) -> 结果
println("相加 =", 结果)
/lib/数学/几何·相加(10, 20) -> 结果2
println("相加 =", 结果2)
/lib/外层/内层·问候()
原点 = 点{横=3.0 纵=4.0}
原点·横 -> x
原点·纵 -> y
println("点 =", x, y)
}
Loading