跳到主要内容

模块系统

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 依次查找:

  1. 入口文件所在目录的 foo.rg(项目模块可覆盖标准库)
  2. RGC_STD 环境变量(冒号分隔的目录列表)
  3. 编译器可执行文件上溯 4 级目录下的 lib/ 与 lib/rgc/
  4. /usr/local/lib/rgc、/usr/lib/rgc

json、regex、string、list、path、net、udp、http、tls、https、gzip 即 lib/ 下的源码模块;io、time、random、os 是编译器内建虚拟模块,没有源文件且不可被同名文件覆盖。循环 import 为编译错误。

继续阅读​