欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Go語言中的變量-創(chuàng)新互聯(lián)

1 概述

變量(Variable)是程序運行過程中,內(nèi)容可以變化(修改)的量,變量的功能是存儲用戶的數(shù)據(jù),是計算機語言中能儲存計算結(jié)果或能表示值抽象概念。
變量,是通過變量的標(biāo)識符定位值的過程。變量的內(nèi)存模擬演示:

創(chuàng)新互聯(lián)建站是專業(yè)的臨安網(wǎng)站建設(shè)公司,臨安接單;提供做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行臨安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Go語言中的變量

2 定義:聲明和初始化

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

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

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

3 類型默認(rèn)值(零值)

Go語言的類型默認(rèn)值如下所示:

  • 整型和浮點型變量的默認(rèn)值為 0。
  • 字符串變量的默認(rèn)值為空字符串。
  • 布爾型變量默認(rèn)為 bool。
  • 切片、函數(shù)、指針變量的默認(rèn)為 nil。

4 強類型

Go語言是強類型語言,變量必須有類型,同時變量僅僅可以存儲特定類型的數(shù)據(jù)。

5 類型推導(dǎo)

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

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

6 短聲明(定義)

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

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)
當(dāng)變量定義完畢后,再批量對其賦值,沒有定義功能!
語法為:

var (
  v1 int
  v2 int
)
// 批量賦值
v1, v2 = 42, 1024

該語法,通常配合函數(shù)的批量返回來使用,一次性接收多個返回值,語法為:

func main() {
  var (
    v1 int
    v2 int
  )
  // 調(diào)用函數(shù),接收其返回值
  v1, v2 = getData()
}
// 返回兩個值的函數(shù)
func getData() (int, int) {
  // 返回了兩個值(假設(shè)42為最小值,1024為大值)
  return 42, 1024
}

非常方便的可以交換兩個變量的值:

var (
  v1 = 42
  v2 = 1024
)
// 交換
v1, v2 = v2, v1

執(zhí)行后,v1==1024, v2==42

9 匿名變量

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

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

10 變量作用域

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

// 全局(函數(shù)外)定義3個變量
var (
  v1 = 1
  v2 = 2
  v3 = 3
)
func main() {

  // main{}函數(shù)塊,定義2個變量
  var (
    v2 = 22
    v3 = 33
  )
  fmt.Println(v1, v2, v3)
  // 結(jié)果 1 22 33

  {
    // main()函數(shù)內(nèi)部{}塊,定義1個變量
    var (
      v3 = 333
    )
    fmt.Println(v1, v2, v3)
    // 結(jié)果 1 22 333
  }
}

上面代碼中:
在main()中,v2,v3被重新定義,則在main()中,v1是外部,而v2, v3是main函數(shù)局部的。
在main()內(nèi)部的{}中,v3被重新定義,則在main()內(nèi)部的{}中,v1是外部,而v2是main()定義的, v3是main()內(nèi)部{}定義的的。

變量可以沿內(nèi)部作用域向外部作用域查找變量的過程。

帶有{}的語句,其中的變量也僅僅在內(nèi)部有效,例如for,if,switch等,演示:

for i := 0; i < 10; i++ {
  fmt.Println(i)
}
fmt.Println(i)
// 會提示變量i未定義, undefined: i

注意i,是通過短聲明在for內(nèi)部定義的變量,僅僅在for內(nèi)部有意義。

互不嵌套的{}見作用域不可見,不可互相訪問。

func main() {
  {
    v := 42
  }
  {
    fmt.Println(v)
    // 會提示變量v未定義, undefined: v
  }
}

完!
原文出自:小韓說課
微信關(guān)注:小韓說課
Go語言中的變量

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站標(biāo)題:Go語言中的變量-創(chuàng)新互聯(lián)
文章URL:http://chinadenli.net/article44/cdhihe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、搜索引擎優(yōu)化、外貿(mào)建站、App設(shè)計、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站