自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 語言短變量聲明的“坑”

開發(fā) 前端
本文我們主要介紹一個(gè)使用 Go 語言短變量聲明方式進(jìn)行變量聲明時(shí),我們非常容易踩的“坑”。

1.介紹

在使用 Go 語言進(jìn)行項(xiàng)目開發(fā)時(shí),我們經(jīng)常會(huì)在定義變量時(shí)使用 Go 語言的一個(gè)語法糖 - 短變量聲明,它雖然好用,但是也會(huì)有讓我們不小心就會(huì)掉進(jìn)的“坑”。

本文我們介紹一個(gè) Go 語言短變量聲明最容易讓程序員掉進(jìn)的“坑”。

2.短變量聲明的“坑”

Go 語言提供了短變量聲明的語法糖,短變量聲明讓 Go 語言的變量聲明更加方便,代碼更加簡(jiǎn)潔。但是,它真的百利無一害嗎?

我們先閱讀一段示例代碼:

func main() {
var name string = "frank"
fmt.Printf("val:%s || ptr:%p\n", name, &name)
name, age := "lucy", 18
fmt.Printf("val:%s || ptr:%p\n", name, &name)
fmt.Println(age)
if name != "lily" {
name := "lily"
fmt.Printf("val:%s || ptr:%p\n", name, &name)
}
}

輸出結(jié)果:

val:frank || ptr:0xc000010200
val:lucy || ptr:0xc000010200
18
val:lily || ptr:0xc000010230

閱讀上面這段代碼,我們先使用通用的 Go 語言變量聲明方式聲明變量 name?,然后再使用 Go 語言語法糖 - 短變量聲明方式,分別在同一作用域和不同作用域聲明變量 name。

首先,我們忽略在同一作用域使用短變量聲明時(shí)的變量 age,僅是為了跳過 Go 編譯器的檢查。

根據(jù)三次聲明變量 name? 的打印結(jié)果可以看出,使用短變量聲明方式在同一作用域聲明變量 name?,僅是對(duì)變量 name 重新賦值,而不是聲明一個(gè)新變量。

所以,我們得出一個(gè)結(jié)論:在同一作用域使用短變量聲明方式進(jìn)行變量聲明時(shí),針對(duì)重名變量,不會(huì)重新生成一個(gè)新變量,而是對(duì)重名變量進(jìn)行重新賦值。

3.總結(jié)

本文我們主要介紹一個(gè)使用 Go 語言短變量聲明方式進(jìn)行變量聲明時(shí),我們非常容易踩的“坑”。

雖然問題比較簡(jiǎn)單,但是越是簡(jiǎn)單的問題越不容易排查,這就要求提升程序員對(duì) Go 語言相關(guān)知識(shí)的掌握水平,盡量避免在開發(fā)時(shí)出現(xiàn)此類問題,導(dǎo)致可能會(huì)花費(fèi)大量時(shí)間排查問題。

最后,我們牢記 Go 語言的短變量聲明語法糖在相同作用域和不同作用域的含義可能會(huì)不同,要注意區(qū)分聲明新變量和重新賦值變量。?

責(zé)任編輯:武曉燕 來源: Golang語言開發(fā)棧
相關(guān)推薦

2021-10-28 19:10:02

Go語言編碼

2021-04-07 09:02:49

Go 語言變量與常量

2022-08-08 06:50:06

Go語言閉包

2022-01-03 20:13:08

Gointerface 面試

2022-08-08 08:31:55

Go 語言閉包匿名函數(shù)

2024-01-04 07:49:00

Go語言方法

2022-02-13 23:10:46

Golang語言變量

2024-01-05 08:31:08

C語言

2010-09-10 10:39:00

SQL變量聲明

2016-03-30 09:56:07

c語言變量聲明objectivec

2012-10-08 09:25:59

GoGo語言開發(fā)語言

2018-03-12 22:13:46

GO語言編程軟件

2021-07-07 12:02:25

Go 服務(wù)進(jìn)程

2014-10-31 09:48:36

Go語言

2023-12-30 10:22:57

Go語言函數(shù)開發(fā)

2022-01-12 09:31:18

Go 變量方式

2011-05-20 16:34:35

VB.NET

2011-02-25 10:12:09

GoWeb

2020-10-22 11:15:47

Go語言變量

2021-03-16 08:56:35

Go interface面試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)