全局變量與局部變量在go語言中的區(qū)別是什么?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元金城江做網(wǎng)站,已為上家服務(wù),為金城江各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-869222201 定義在{}里面的變量時(shí)局部變量,只能在{}里面有效
2 執(zhí)行到定義的那句話,開始分配內(nèi)存空間,離開作用域自動(dòng)進(jìn)行釋放
3 作用域,就是變量作用的范圍
package main import "fmt" func test() { i := 111 fmt.Println("i=", i) } func main() { test() { i := 10 fmt.Printf("i=%v\n", i) } // i=12 錯(cuò)誤 if flag := 3; flag == 3 { fmt.Println("flag=", flag) } //fmt.Println("flag=", flag) 錯(cuò)誤 }
1 定義在函數(shù)外部的變量稱為全局變量
2 全局變量在任何地方都可以進(jìn)行使用
package main import "fmt" func test() { fmt.Println("a= ", a) } var a int func main() { a = 12 fmt.Println("a= ", a) test() }
1 不同的作用域,允許定義同名的變量
2 使用變量的原則,就近原則,如果局部變量沒有,就去全局變量中找
package main import "fmt" //定義一個(gè)全局變量 var a byte func main() { var a int fmt.Printf("1: a type is %T\n", a) //int { var a float32 fmt.Printf("2: a type is %T\n", a) // float32 } test() } func test() { fmt.Printf("3: a type is %T\n", a) //uint8 }
補(bǔ)充:golang全局變量的坑-盡量別用全局變量
看圖片吧~
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。