模块导入
模块通过 import
关键字导入:
import os
fn main() {
name := os.input('输入姓名: ') // 使用模块前缀调用
println('你好, ${name}!')
📌 默认需显式使用模块前缀(如 os.
),提升代码可读性。⚠️ 禁止循环导入(与 Go 语言相同)。
选择性导入
直接导入特定函数/类型(常量仍需前缀):
import os { input } // 仅导入 input 函数
fn main() {
name := input('输入姓名: ') // 直接调用
}
多符号导入:
import os { input, user_os }
println(user_os()) // 直接调用
模块层级规则
- 目录即模块名
./utils/logger.v
文件首行必须是module utils
- 子模块独立导入目录
net/http
中的模块:
- 文件首行:
module http
- 导入语句:
import net.http
- 调用单级前缀子模块函数调用:
http.get()
(非net.http.get()
)
模块别名
解决同名冲突或简化调用:
import crypto.sha256
import mylib.sha256 as mysha // 别名
fn main() {
crypto.sha256.sum() // 原模块
mysha.sum() // 别名调用
}
类型别名
为导入类型创建本地别名:
import time
type MyTime = time.Time // 类型别名
fn (t MyTime) format() string {
return t.str()
}