学习语言

模块

导入其他文卷,并理解模块路径、命名空间、缓存和循环依赖。

 平方(本数:):
 本数  本数;

在另一卷中引用:

「模块/数术.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,套接字资源见套接字