模块导入

模块通过 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())  // 直接调用

模块层级规则

  1. 目录即模块名./utils/logger.v 文件首行必须是 module utils
  2. 子模块独立导入目录 net/http 中的模块:
    • 文件首行:module http
    • 导入语句:import net.http
  1. 调用单级前缀子模块函数调用: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() 
}