go语法基础与其他语言对比学习(2) | 青训营

122 阅读1分钟

2.变量

import "fmt"
func main(){
    //1.变量的声明
    var age int
    //2.变量的赋值
    age = 18
    //3.变量的使用
    fmt.Println("age = ", age);
    //声明和赋值可以合成一句:
    var age2 int = 19
    fmt.Println("age2 = ", age2);
    // var age int = 20;
    // fmt.Println("age = ", age);
    /*变量的重复定义会报错:
         # command-line-arguments
                .\main.go:16:6: age redeclared in this block
                        previous declaration at .\main.go:6:6
        */
    //不可以在赋值的时候给与不匹配的类型
    var num int = 12.56 //报错
    fmt.Println("num = ", num);
}

  • 从以上代码可知,go使用var这个关键词来声明,且把变量类型后置,后置这个行为是和其他几种我学过的语言所不一样的。至于声明赋值在一起的话,则和其他语言一模一样。
  • 而同样使用var这个关键词来声明变量的就是JavaScript(不过已经不推荐用var了,而使用了let),这点go和JavaScript是有相似点的。至于Java虽然也有var这个关键词,但在Java是IDE主要是根据前后语境来动态判断变量类型的。
  • 除此,go也是有四种变量定义方法:
    • 1.使用var 变量名字 类型且赋值
    • 2.使用var 变量名字 类型但不赋值,即默认值
    • 3.var 变量名字 且赋值 但没有指明类型,此时跟Java类似,var有根据赋值类型来动态判断变量类型的功能
    • 4.省略var,但赋值时使用:=,而不是=
    • 5.一次性定义多个变量 var{变量 赋值 变量 赋值}的形式,这点跟其他语言不同的是,需要使用{}。