go語言 全局變量和局部變量實(shí)例
一、局部變量
1 定義在{}里面的變量時(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全局變量的坑-盡量別用全局變量
看圖片吧~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Golang Socket Server自定義協(xié)議的簡(jiǎn)單實(shí)現(xiàn)方案
這篇文章主要介紹了Golang Socket Server自定義協(xié)議的簡(jiǎn)單實(shí)現(xiàn)方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Go項(xiàng)目實(shí)現(xiàn)優(yōu)雅關(guān)機(jī)與平滑重啟功能
無論是優(yōu)雅關(guān)機(jī)還是優(yōu)雅重啟歸根結(jié)底都是通過監(jiān)聽特定系統(tǒng)信號(hào),然后執(zhí)行一定的邏輯處理保障當(dāng)前系統(tǒng)正在處理的請(qǐng)求被正常處理后再關(guān)閉當(dāng)前進(jìn)程,這篇文章主要介紹了Go實(shí)現(xiàn)優(yōu)雅關(guān)機(jī)與平滑重啟 ,需要的朋友可以參考下2022-10-10使用Go+GoQuery庫實(shí)現(xiàn)頭條新聞采集
在本文中,我們將介紹如何使用Go語言和GoQuery庫實(shí)現(xiàn)一個(gè)簡(jiǎn)單的爬蟲程序,用于抓取頭條新聞的網(wǎng)頁內(nèi)容,我們還將使用爬蟲代理服務(wù),提高爬蟲程序的性能和安全性,我們將使用多線程技術(shù),提高采集效率,最后,我們將展示爬蟲程序的運(yùn)行結(jié)果和代碼,需要的朋友可以參考下2023-10-10Golang切片連接成字符串的實(shí)現(xiàn)示例
本文主要介紹了Golang切片連接成字符串的實(shí)現(xiàn)示例,可以使用Go語言中的內(nèi)置函數(shù)"String()"可以將字節(jié)切片轉(zhuǎn)換為字符串,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11