Go语言学习笔记-变量

变量
使用关键字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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值