中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言變量怎么定義和使用

發布時間:2022-12-03 09:38:18 來源:億速云 閱讀:137 作者:iii 欄目:編程語言

這篇“Go語言變量怎么定義和使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go語言變量怎么定義和使用”文章吧。

在Go語言中,變量是程序運行過程中,內容可以變化(修改)的量; 變量是程序的基本組成單位,是內存中一個數據存儲空間的表示,可以通過變量名找到變量值。變量的功能是存儲用戶的數據,是計算機語言中能儲存計算結果或能表示值抽象概念。

1、概述

變量(Variable)是程序運行過程中,內容可以變化(修改)的量; 變量是程序的基本組成單位,是內存中一個數據存儲空間的表示,可以通過變量名找到變量值。

變量的功能是存儲用戶的數據,是計算機語言中能儲存計算結果或能表示值抽象概念。

變量,是通過變量的標識符定位值的過程。變量的內存模擬演示:

Go語言變量怎么定義和使用

2、定義:聲明和初始化

定義變使用var關鍵字,需要指定其類型,可以同時初始化,如果沒有指定初始化值,則使用類型的默認值,語法如下:

// 聲明變量,未初始化(默認值初始化)
var name string
// 聲明變量,特定值初始化
var user string = "Hank"

Go語言中的變量必須聲明后才可以使用,不能直接使用未定義的變量。

3、類型默認值(零值)

Go語言的類型默認值如下所示: 整型和浮點型變量的默認值為 0。 字符串變量的默認值為空字符串。 布爾型變量默認為 bool。 切片、函數、指針變量的默認為 nil。

4、強類型

Go語言是強類型語言,變量必須有類型,同時變量僅僅可以存儲特定類型的數據。【相關推薦:Go視頻教程】

5、類型推導

定義變量時,如果指定了初始值,則可以省略類型的定義,Go語言可以自己由數據推導出類型。 語法為:

// 聲明變量,特定值初始化,類型推導出user為字符串string型
var user = "Hank"

6、短聲明(定義)

為了簡化定義變量,使用運算符 := 配合類型推導,可以快速完成變量的定義,語法為:

user := "hank"

7、批量定義

使用var或:=都可以一次性定義多個變量,語法為:

var

var (
 v1 = 42
 v2 = "hank"
 )
也可以
var v1, v2 = 42, "hank"

:=

v1, v2 := 42, "hank"

推薦使用 var() 聲明塊語法,因為代碼維護容易。

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

執行后,v1==1024, v2==42

9、匿名變量

標識符為_(下劃線)的變量,是系統保留的匿名變量,在賦值后,會被立即釋放,稱之為匿名變量。其作用是變量占位符,對其變量賦值結構。通常會在批量賦值時使用。 例如,函數返回多個值,我們僅僅需要其中部分,則不需要的使用_來占位,演示:

func main() {
 var (
   v int
 )
 // 調用函數,僅僅需要第二個返回值,第一,三使用匿名變量占位
 _, v, _ = getData()
}
// 返回兩個值的函數
func getData() (int, int, int) {
 // 返回3個值
 return 42, 1024, 2012
}

10、變量作用域

Go語言中的變量是塊作用域。 塊,指的是使用{}定義的代碼段,包括函數,if/switch/for語句,或獨立的{}都是塊。在塊內定義的變量僅僅在本塊內可用。 定義,指的是 var 或者 := 定義的變量。 Go語言的作用域是層疊的,就是說內層塊可以直接訪問到外層塊的變量,前提是內層塊沒有定義同名的外層變量。 演示如下:

// 全局(函數外)定義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語言變量怎么定義和使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赞皇县| 定襄县| 玉田县| 萨嘎县| 盘山县| 宁强县| 璧山县| 南陵县| 互助| 克东县| 阿克苏市| 嘉鱼县| 宜兰市| 黄山市| 深圳市| 和顺县| 衢州市| 博白县| 敦煌市| 延寿县| 嘉定区| 内乡县| 光山县| 望城县| 沙洋县| 华容县| 盐城市| 丰镇市| 乌拉特后旗| 永福县| 平潭县| 呼伦贝尔市| 崇明县| 旬阳县| 黎川县| 集贤县| 什邡市| 辉南县| 肇庆市| 沙田区| 涟源市|