模块系统
RGC 使用 import 引入模块,模块内部通过 public 控制可见性。
导入模块
import geometry
import io
模块定义
# geometry.rg
public def area(w: float, h: float) -> float {
return w * h
}
# 未加 public 的项仅在模块内部可见
def helper() { ... }
使用模块
import geometry
def main() {
print(geometry.area(3.0, 4.0))
}
可见性
public声明的函数、类型、常量对外可见。- 默认私有,避免内部实现细节泄漏到模块边界。
标准库解析
import foo 依次查找:
- 入口文件所在目录的
foo.rg(项目模块可覆盖标准库) RGC_STD环境变量(冒号分隔的目录列表)- 编译器可执行文件上溯 4 级目录下的
lib/与lib/rgc/ /usr/local/lib/rgc、/usr/lib/rgc
json、regex、string、list、path、net、udp、http、tls、https、gzip 即 lib/ 下的源码模块;io、time、random、os 是编译器内建虚拟模块,没有源文件且不可被同名文件覆盖。循环 import 为编译错误。