变量

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名字的变量。