学习语言
模块
导入其他文卷,并理解模块路径、命名空间、缓存和循环依赖。
公 法 平方(本数:数):数 则
归 本数 乘 本数;
终在另一卷中引用:
引「模块/数术.yx」为 数术;
言 数术.平方(9);也可写作引「模块/数术.yx」作 数术;。相对路径以包含导入语句的文卷目录为基准,不受启动命令所在目录影响。
每个模块在独立词法环境中执行。顶层声明默认私有,只有以公修饰的变量、常量、法和类会进入模块命名空间。公开变量保持活绑定:模块内更改后,外部下次读取会看到新值。
模块只执行一次,后续引用复用缓存;成员不能由外部改写,循环引用会报错。
包与标准模块
1.1.7 的新项目继续使用格式 2 清单。最低配置只需包信息,依赖和权限按需添加:
[包]
名 = "算书"
格式 = 2
版 = "1.0.0"
言序 = ">=1.1.7"
入口 = "src/主.yx"
[依赖]
工具 = { 包 = "共享工具", 路径 = "../tools", 版 = "^1" }
[导出]
默认 = "src/主.yx"
数术 = "src/数术.yx"依赖可以使用与真实包名不同的别名,也可来自路径、Git 或索引。格式 2 的言序.lock在构建前固定直接和传递依赖、精确版本、来源、Git 提交、校验和、依赖边、目标平台、导出表与原生制品。请使用言包生成和解释锁图,不要手工编辑。
引「包:工具」为 工具;读取默认导出,引「包:工具/数术」为 数术;读取显式公开模块。顶层项目不能越过自己的清单直接导入传递依赖,也不能依赖第三方包的内部文件布局。模块按确定顺序初始化;循环诊断会显示完整的甲 → 乙 → 甲链。
1.0 稳定集合包括文字、数学、时间、文件、JSON、网络、测试、路径、环境、哈希、编码、统计、CSV、随机、标识、模板和校验;1.1 兼容加入Base64、正则、URL、日期、原生套接字、字节、进程和资源,目前共 25 个。完整 API 见标准库,二进制语义见字节串与二进制 I/O,套接字资源见套接字。