Go語言中變數是什麼
在Go語言中,變數是程式運行過程中,內容可以改變(修改)的量; 變數是程式的基本組成單位,是記憶體中一個資料儲存空間的表示,可以透過變數名稱找到變數值。變數的功能是儲存使用者的數據,是計算機語言中能儲存計算結果或能表示值抽象概念。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
1、概述
變數(Variable)是程式運作過程中,內容可以改變(修改)的量; 變數是程式的基本組成單位,是記憶體中一個資料儲存空間的表示,可以透過變數名稱找到變數值。
變數的功能是儲存使用者的數據,是電腦語言中能儲存計算結果或能表示值抽象概念。
變量,是透過變數的識別碼定位值的過程。變數的記憶體模擬示範:
2、定義:宣告與初始化
// 声明变量,未初始化(默认值初始化)
var name string
// 声明变量,特定值初始化
var user string = "Hank"
3、型別預設值(零值)
#Go語言的型別預設值如下所示:整數型與浮點型變數的預設值為0。 字串變數的預設值為空字串。 布林型變數預設為 bool。 切片、函數、指標變數的預設為 nil。
Go語言是強型別語言,變數必須有型別,同時變數僅能儲存特定型別的資料。 【相關推薦:Go影片教學】
5、類型推導定義變數時,如果指定了初始值,則可以省略類型的定義,Go語言可以自己由資料推導出類型。語法為:// 声明变量,特定值初始化,类型推导出user为字符串string型
var user = "Hank"
為了簡化定義變數,使用運算子: = 配合類型推導,可以快速完成變數的定義,語法為:user := "hank"
使用var或:=都可以一次定義多個變量,語法為:
varvar ( v1 = 42 v2 = "hank" ) 也可以 var v1, v2 = 42, "hank"
##:=
v1, v2 := 42, "hank"
8、批次賦值
一次為多個變數進行賦值。 (類似短定義。v1, v2, v3 := 42, "hank", false) 當變數定義完畢後,再批量對其賦值,沒有定義功能!語法為:var ( v1 int v2 int ) // 批量赋值 v1, v2 = 42, 1024
此語法,通常配合函數的批次回傳來使用,一次接收多個回傳值,語法為:func main() {
var (
v1 int
v2 int
)
// 调用函数,接收其返回值
v1, v2 = getData()
}
// 返回两个值的函数
func getData() (int, int) {
// 返回了两个值(假设42为最小值,1024为最大值)
return 42, 1024
}
var ( v1 = 42 v2 = 1024 ) // 交换 v1, v2 = v2, v1
func main() { var ( v int ) // 调用函数,仅仅需要第二个返回值,第一,三使用匿名变量占位 _, v, _ = getData() } // 返回两个值的函数 func getData() (int, int, int) { // 返回3个值 return 42, 1024, 2012 }
// 全局(函数外)定义3个变量 var ( v1 = 1 v2 = 2 v3 = 3 ) func main() { // main{}函数块,定义2个变量 var ( v2 = 22 v3 = 33 ) fmt.Println(v1, v2, v3) // 结果 1 22 33 { // main()函数内部{}块,定义1个变量 var ( v3 = 333 ) fmt.Println(v1, v2, v3) // 结果 1 22 333 } }
上面代码中: 在main()中,v2,v3被重新定义,则在main()中,v1是外部,而v2, v3是main函数局部的。 在main()内部的{}中,v3被重新定义,则在main()内部的{}中,v1是外部,而v2是main()定义的, v3是main()内部{}定义的的。
变量可以沿内部作用域向外部作用域查找变量的过程。
带有{}的语句,其中的变量也仅仅在内部有效,例如for,if,switch等,演示:
for i := 0; i < 10; i++ { fmt.Println(i) } fmt.Println(i) // 会提示变量i未定义, undefined: i
注意i,是通过短声明在for内部定义的变量,仅仅在for内部有意义。
互不嵌套的{}见作用域不可见,不可互相访问。
func main() { { v := 42 } { fmt.Println(v) // 会提示变量v未定义, undefined: v } }
更多编程相关知识,请访问:编程教学!!
以上是Go語言中變數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Go語言在構建高效且可擴展的系統中表現出色,其優勢包括:1.高性能:編譯成機器碼,運行速度快;2.並發編程:通過goroutines和channels簡化多任務處理;3.簡潔性:語法簡潔,降低學習和維護成本;4.跨平台:支持跨平台編譯,方便部署。

Go編程中的資源管理:Mysql和Redis的連接與釋放在學習Go編程過程中,如何正確管理資源,特別是與數據庫和緩存�...

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

使用Go語言連接Oracle數據庫時是否需要安裝Oracle客戶端?在使用Go語言開發時,連接Oracle數據庫是一個常見需求�...
