模块(Modules)


Vlang是一种模块化的语言,创建可重用模块是V语言中备受推荐的做法且很简单,只要需要创建一个以模块为名的文件夹,然后在该文件夹下编写.v文件即可。

cd ~/code/modules
mkdir mymodule
vim mymodule/mymodule.v

// mymodule.v
module mymodule
 
// To export a function we have to use `pub`
pub fn say_hi() {
	println('hello from mymodule!')
}

在Vlang中,导出模块中的函数,需要使用pub关键字。

你可以编写多个.v文件在mymodule/中,编译模块也很简单,只要执行命令即可:

v -lib ~/code/modules/mymodule

使用模块中导出的函数也非常简单:

module main
 
import mymodule
 
fn main() {
	mymodule.say_hi()
}

请注意,每次调用外部函数时都必须指定模块。 这看起来似乎很冗长,但它使代码更易读,更容易理解,因为它始终清楚从哪个模块调用哪个函数,特别是在大型项目的代码库中。

模块名称应简短,不超过10个字符。 循环导入是不允许的

现在你可以在任何地方创建模块,也许这应该是标准化的(比如Go的GOPATH)。

所有模块都静态编译为单个可执行文件。