变量

  1. name := 'Bob'
  2. age := 20
  3. large_number := i64(9999999999)
  4. println(name)
  5. println(age)
  6. println(large_number)

变量使用:=声明和初始化,这是V语言唯一定义变量的方式。因此,V语言中所有的变量必须指定一个初始化的值。

变量的类型是从右值推导来的。要使用其它类型,必须手工强制转换类型:使用T(v)表达式将v转换为T类型。

和其它主流语言不同的是,V语言只能在函数内部定义变量。V语言没有模块级别的全局变量,因此也没有全局状态。

  1. mut age := 20
  2. println(age)
  3. age = 21
  4. println(age)

使用=给变量重新赋值。不过在V语言中,变量默认是不可再次改变的。如果需要再次改变变量的值,必须用mut修饰变量。可以尝试删除mut,然后再编译上面的代码。

需要注意:==的差异,前者是用于声明和初始化变量,后者是重新给变量赋值。

  1. fn main() {
  2. age = 21
  3. }

上面的代码将不能编译,因为变量没有被声明过。V语言中所有的变量必须要先声明。

  1. fn main() {
  2. age := 21
  3. }

上面的代码依然不能被编译,因为V语言中禁止声明没有被使用的变量。

  1. fn main() {
  2. a := 10
  3. if true {
  4. a := 20
  5. }
  6. }

和很多其它语言不同的是,不同块作用域的变量不得重名。上面的例子中,变量a已经在外层被声明过,因此不能再声明a名字的变量。