Go语言如何声明变量

1. 用关键词var进行声明

var name type = expression

var后面跟着变量名name,变量类型type和变量初始值expression。Go语言带有零值机制,能够自动对没有显式赋值的变量进行零值初始化。Go语言里不存在未经初始化的变量。

var s string
fmt.Println(s) // ""

我们也可以同时声明多个变量。

var i, j, k int                    // int, int, int
var b, f, s = true, 2.3, "four"    // bool, float64, string

省略类型并同时对多个变量进行显式初始化,Go会自动从初始值的类型推断变量的类型。

函数的返回值也可以用来初始化变量。

var f, err = os.Open(name) // os.Open returns a file and an error

2. 简短变量声明

简短变量声明用于声明大部分的局部变量。简短变量声明可以用这样的表达式表示。

name := expression

具体的例子如下:

anim := gif.GIF{LoopCount: nframes}
freq := rand.Float64() * 3.0
t := 0.0

函数返回值也可以用在简短声明中。

f, err := os.Open(name)
if err != nil {
    return err
}
f.Close()

在多变量的简短声明中至少需要有一个变量是没有声明过的,这意味着Go允许多个变量中存在已经声明过的变量。

3. new 内置函数

new(T)表达式可以创建一个类型为T的无名变量,进行零值初始化后返回变量的地址,即类型*T。

p := new(int)          // p, 类型 *int
fmt.Println(*p)        // 输出"0"
*p = 2                 // 赋值为2
fmt.Println(*p)        // 输出“2”

new作为内置函数,可以在局部被相同名字的变量覆盖。

func delta(old, new int) int {return new - old}

上面函数内部new是int类型变量,内置函数new无法使用,这在语法上是合法的。

new函数用于初始化出现频率不高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值