模块

V是一个模块化的语言。它鼓励创建可复用的模块,而且创建模块也很简单。要创建模块需要先创建一个同名的目录,然后里面包含.v后缀名的文件:

1. cd ~/code/modules
2. mkdir mymodule
3. vim mymodule/mymodule.v
1. // mymodule.v
2. module mymodule

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

在mymodule目录下可以有多个v源代码文件。

然后通过v -lib ~/code/modules/mymodule命令编译模块。

然后就可以在自己的代码中使用了:

1. module main

3. import mymodule

5. fn main() {
6. mymodule.say_hi()
7. }

每次调用模块中的函数必须在函数前面指定模块名。这虽然有点冗长,但是代码更容易阅读和为何,我们一眼就可以看出函数是属于那个模块的。在大型代码库中这很重要。

模块名要短小,一般不要超出10个字符。而且模块也不能出现循环依赖。

所以的模块都将静态编译到单一的可执行程序中。