Go语言学习笔记-变量

来源:互联网 发布:剧情手机游戏 知乎 编辑:程序博客网 时间:2024/05/17 02:35

变量
使用关键字var定义变量,格式为:var 变量名 数据类型 = 值
对于未初始化的变量,编译器会自动初始化。
go语言支持推断赋值,即如果给变量提供初始化值,可以省略变量类型。由编译器自行推断
go语言支持组赋值

var name string = "wangyijie"//组声明,赋值var (    name          = "wangyijie"    i             = 0    pi    float64 = 3.1415926    a     bool    //默认true    b     int     //默认0    c     *int    //默认nil    d     float64 //默认0.0    arr   [3]int  //默认[0 0 0]    value 变量类型    = 20)

在函数体内生明变量还可以用 typeName := typeValue的格式,如果在函数体外使用会报出编译错误:non-declaration statement outside function body,另外var 不可以和”:=”同时使用

//推断赋值func assgniment() {    //推断赋值    name := "哀木梯"    fmt.Println(name)    }

此外,go可以并行定义多个变量

//并行声明,前提是声明的数据类型一致var name, passwd, loginTime string//同时也可以并行赋值,若声明变量类型,并行的变量类型需要一致var name, passwd, loginTime string = "wangyijie", "123456", "23246382637"var age, gender = 12, "男"   //也可不指定//并行推断声明,赋值(应为是编译器自行推断,变量类型可以不一致)func demo() {    age desc := 20, "hello, world"    fmt.println(age, desc)} 

注:若声明的局部变量为使用,编译阶段会报错,全局变量则没有这个问题

//go语言中没有一个名为while的关键字,所以你可以声明一个名为while的变量var while int//如果局部变量未使用,会报出编译时错误func demo1() {        var time string //编译报错: time declared and not used}

变量的作用域

var name string = "wangyijie"func setName(){    var name string = "lizheng"    fmt.Println(name)    //输出lizheng}fmt.Println(name)       //输出wangyijie
0 0