• 变量

    变量

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