Files
2025-10-11 06:07:46 +08:00
..
2025-10-11 06:07:46 +08:00
2025-10-11 06:07:46 +08:00
2025-10-11 06:07:46 +08:00

wz: 凹语言中文版的第2版设计

w2为临时名字, 是wz的象形替代. 设计思路参考凹语言中文第一版语法/考鼎码和其他语言的一些设计. 目标是通过内置的数据结构和基本的控制流语句方便编程启蒙, 同时能够融合凹语言的生态.

文件名和包结构

  • 文件后缀名为.wz
  • 单个文件可执行, 和凹语言保持一致
  • 目录中多个.wz文件对应一个包
  • 源文件以utf8编码

主函数

主控 是入口函数:

函数 主控:
    输出 ("Hello, world!")
完毕

等价于以下的凹语言代码:

func main {
    println("Hello, world!")
}

典型示例

打印输出和调用函数:

引入 "格式化"

全局 年 = 2023

函数 主控:
	输出("你好, 凹语言!")
	输出(加法(40, 2), 年)

	格式化.输出(1+1)
完毕

函数 加法(甲, 乙: 整数) => 整数:
	返回 甲+乙
完毕

打印30以内的素数:

引入 "书"

函数 主控:
	注打印30以内的素数
	循环 甲 := 2; n <= 30; 甲++:
		是素数 := 真
		循环 乙 := 2; 乙*乙 < 甲; 乙++:
			丙 := 甲%乙
			如果 丙 == 0:
				是素数 = 假
			完毕
		完毕
		如果 是素数:
			书·曰(甲)
		完毕
	完毕
完毕

关键字的对应

  • break: 跳出
  • case: 有辙
  • const: 常量
  • continue: 继续
  • default: 没辙
  • defer: 押后
  • else: 否则
  • else if: 或者
  • for: 循环
  • func: 函数
  • global: 全局
  • if: 如果
  • import: 引入
  • interface: 接口
  • map: 字典
  • range: 迭代
  • return: 返回
  • struct: 结构
  • switch: 找辙
  • type: 类型

内置具名对象的对应

  • nil: 空
  • true: 真
  • false: 假
  • iota: 自增
  • init: 准备
  • main: 主控
  • this: 自身
  • println: 输出
  • print: 打印

内置的类型

  • bool: 布尔
  • int: 整型
  • uint: 正整
  • float32: 单精
  • float64: 双精
  • complex64: 复单
  • complex128: 复双
  • uintptr: 针型
  • string: 字串
  • byte: 字节
  • rune: 符文
  • i8: 微整型
  • i16: 短整型
  • i32: 普整型
  • i64: 长整型
  • u8: 微正整
  • u16: 短正整
  • u32: 普正整
  • u64: 长正整
  • error: 错误

包名字

  • main: 主包
  • builtin: 太初
  • unsafe: 鸿蒙
  • runtime: 周行