模块

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

  1. cd ~/code/modules
  2. mkdir mymodule
  3. vim mymodule/mymodule.v
  1. // mymodule.v
  2. module mymodule
  3. // To export a function we have to use `pub`
  4. pub fn say_hi() {
  5. println('hello from mymodule!')
  6. }

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

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

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

  1. module main
  2. import mymodule
  3. fn main() {
  4. mymodule.say_hi()
  5. }

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

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

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