国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Go 語言的變量與常量

開發 后端
go 語言的變量聲明和大多數語言類似,通過 var 關鍵字聲明變量,只是 go 語言作為靜態類型語言,聲明變量時需要指定其類型。

[[391525]]

變量

go 語言的變量聲明和大多數語言類似,通過 var 關鍵字聲明變量,只是 go 語言作為靜態類型語言,聲明變量時需要指定其類型。

下面的代碼表示聲明一個『name』變量,類型為『string』,并給其賦值『"Shenfq"』。

  1. var name string = "Shenfq" 

如果我們不進行賦值,這變量會獲得一個默認值,下面列舉一些 go 語言中的基礎類型及其默認值。

多變量聲明

上面介紹 go 語言通過 var 關鍵字進行單個變量聲明,我們還可以通過 var 關鍵字進行多個變量的聲明:

  1. // 聲明兩個變量為同一類型 
  2. var firstName, lastName string 
  3. // 給兩個變量同時賦值 
  4. firstName, lastName = "frank""shen" 

  1. // 聲明兩個變量為不同類型 
  2. var ( 
  3.   age int 
  4.  name string 
  5. // 給兩個變量同時賦值 
  6. age, name = 25, "Shenfq" 

類型推導

如果我們在變量聲明階段,對變量進行了賦值操作,這時候我們是可以直接省略變量類型的,因為 go 在編譯過程中會依據所賦予的初始值推導出其類型。

  1. var age = 25 
  2.  
  3. fmt.Printf("age 類型為:%T", age) // age 類型為:int 

  1. var ( 
  2.   age = 18 
  3.   name = "Shenfq" 
  4. fmt.Printf("age 類型為:%T", age) // age 類型為:int 
  5. fmt.Printf("name 類型為:%T"name) // name 類型為:string 

簡短格式

前面介紹了變量聲明的時候,如果給定了初始值,go 在編譯階段可以進行類型推導。這種情況,go 提供了一種更簡單的聲明方式,通過 := 的方式進行變量聲明,可以省略 var 關鍵字。

  1. func main() { 
  2.   age := 25 
  3.  name := "Shenfq" 

  1. // 也可以進行多個變量同時賦值 
  2. func main() { 
  3.   age, name := 25, "Shenfq" 

⚠️注意事項一

這種聲明方式只能用于函數體內,不能用于全局變量的聲明。

  1. // ⚠️ 不能在全局使用這種方式聲明變量 
  2. age, name := 25, "Shenfq" 
  3.  
  4. // 只能在函數體內使用該方式 
  5. func main() { 
  6.  age, name := 25, "Shenfq" 
  7.  fmt.Printf("age 類型為:%T", age) 
  8.  fmt.Printf("name 類型為:%T"name

 

warning

⚠️注意事項二

已經聲明過的變量,不能使用 := 的方式進行賦值。

  1. func main() { 
  2.   var age int 
  3.  age := 25 

 

已經聲明過的變量,只能通過 = 的方式進行賦值。

  1. func main() { 
  2.   var age int 
  3.  age = 25 

全局變量與局部變量

簡單來說,聲明在函數體外的變量為全局變量,聲明在函數體內的變量為局部變量。

局部變量如果有聲明,沒有進行使用,則不會通過編譯。

  1. func main() { 
  2.   var age int 

 

但是,全局變量是可以聲明而不使用的。

  1. var age int 
  2. func main() { 
  3.  name := "Shenfq" 
  4.  //fmt.Printf("age 類型為:%T", age) 
  5.  fmt.Printf("name 類型為:%T"name

上面的代碼中,我們聲明了 age 全局變量,但是并未使用,可以正常編譯。

空白標識符

前面介紹過,go 在變量賦值的時候,可以一次性對多個變量賦值。同時,go 的函數在 return 的時候,也能一次返回多個結果。

  1. func double(num int) (string, int) { 
  2.  var err string 
  3.  if num < 0 { 
  4.   err = "num 不能為負數" 
  5.   return err, -1 
  6.  } 
  7.  result := num * 2 
  8.  return err, result 

上面我們實現了一個 double 函數,該函數接受一個 int 類型的變量(num),返回兩個值,一個為異常提示(string 類型),一個為 num * 2 的結果。如果 num < 0 , 則提示 num 不能負數。

  1. func main() { 
  2.  err, res := double(10) 
  3.  if err != "" { 
  4.   fmt.Printf(err) 
  5.  } else { 
  6.   fmt.Printf("結果為:%v", res) 
  7.  } 

如果,我們并不關心 err ,只想執行 double 之后,輸出其結果。

  1. func main() { 
  2.  err, res := double(10) 
  3.  fmt.Printf("結果為:%v", res) 

 

運行后,我們會收到一個編譯錯誤,err 變量并未使用。這時候,就需要用到空白標識符(_)。

  1. func main() { 
  2.  _, res := double(10) 
  3.  fmt.Printf("結果為:%v", res) 

我們可以通過 _ 來接受 err 值,這個地方的值就會被拋棄掉,就能順利通過編譯。

常量

常量就是不會發生變化的變量,一旦聲明就不會改變。go 語言中,常量的聲明只需要將變量聲明時的 var 關鍵字替換為 const 關鍵字。

  1. // 隱式類型定義 
  2. const PI = 3.14 
  3. // 顯式類型定義 
  4. const PI2 float  = 3.14 

多常量聲明

與變量類似,常量也支持一次性聲明多個。

  1. func main() { 
  2.  const ( 
  3.   PI = 3.14 
  4.   PI2 = 3.14 
  5.  ) 
  6.  fmt.Printf("結果為:%v\n", PI) 
  7.  fmt.Printf("結果為:%v\n", PI2) 

 

如果一次聲明多個常量時,某個常量如果為進行賦值,默認會與上一個常量的值進行同步。下面代碼的運行結果,與上面的代碼一致。

  1. func main() { 
  2.  const ( 
  3.   PI = 3.14 
  4.   PI2 
  5.  ) 
  6.  fmt.Printf("結果為:%v\n", PI) 
  7.  fmt.Printf("結果為:%v\n", PI2) 

特殊常量

有個叫做 iota 的特殊常量,在常量的賦值過程中,會進行累加。

  1. func main() { 
  2.  const ( 
  3.   A = iota 
  4.   B 
  5.   C 
  6.  ) 
  7.  fmt.Println(A, B, C) // 0 1 2 

在 iota 累加的過程中,可以對其進行打斷。

  1. func main() { 
  2.  const ( 
  3.   A = iota 
  4.   B 
  5.   C = "Shenfq" 
  6.     D 
  7.     E 
  8.  ) 
  9.  fmt.Println(A, B, C, D, E) 

這時候輸出的結果為:

這是由于我們將常量 C 修改為了字符串 "Shenfq",常量 D、E 會默認與上一條常量保持同步,所以會得到上述結果。但是, iota 是支持重新恢復累加,只需要在指定位置重新賦值一次 iota 即可。

  1. func main() { 
  2.  const ( 
  3.   A = iota 
  4.   B 
  5.   C = "Shenfq" 
  6.   D = iota // 恢復累加狀態 
  7.   E 
  8.  ) 
  9.  fmt.Println(A, B, C, D, E) 

由于 C 占用了原本 2 的位置,所以 D 恢復后,也是從 3 開始的。

iota 這種累加的特性,特別像我們在其他語言中使用的枚舉,所以在 go 語言中,我們可以直接將 iota 當做枚舉來使用。

  1. type ButtonType int 
  2. const ( 
  3.   Default ButtonType = iota 
  4.   Primary 
  5.   Warning 
  6.   Error 

 

責任編輯:姜華 來源: 自然醒的筆記本
相關推薦

2022-07-31 23:05:55

Go語言短變量

2021-03-25 12:00:18

Python變量常量

2024-01-04 07:49:00

Go語言方法

2021-07-30 07:28:15

WorkerPoolGo語言

2021-04-13 07:58:42

Go語言函數

2021-04-20 09:00:48

Go 語言結構體type

2021-07-13 06:44:04

Go語言數組

2020-07-07 07:00:00

RustGo語言編程語言

2021-04-25 08:11:57

C語言常量與變量標識符命名規范

2010-03-22 13:49:20

2021-11-06 10:18:30

Python變量常量

2023-12-15 14:38:00

GoRust編程語言

2024-12-13 16:28:43

2012-10-08 09:25:59

GoGo語言開發語言

2024-03-01 20:16:03

GoRust語言

2023-09-21 22:02:22

Go語言高級特性

2022-06-22 09:24:30

云原生Go 語言

2018-03-12 22:13:46

GO語言編程軟件

2011-12-15 09:00:51

PHP 7

2025-03-31 00:29:44

點贊
收藏

51CTO技術棧公眾號

日韩欧美亚洲国产另类| 国产精品一品视频| 日韩久久综合| 国产精品天天看| 精品一区精品二区| 成人免费黄色网页| 一区二区中文字| 午夜精品福利久久久| 欧美激情欧美激情| 免费av网站在线观看| 日韩精品免费视频人成| 亚洲欧美999| 免费99视频| 中文字幕系列一区| 久久午夜电影网| 国产女人水真多18毛片18精品| 国产高清免费av在线| 久久成人免费电影| 国产日韩精品综合网站| 国产三级中文字幕| 伊色综合久久之综合久久| 久久影院理伦片| 波多野结衣亚洲| 亚洲欧洲精品一区二区精品久久久 | 欧美va在线播放| 老太脱裤子让老头玩xxxxx| 日韩欧美国产大片| 中文字幕欧美日韩| 最近久乱中文字幕| 日韩a**中文字幕| 中文字幕制服丝袜成人av| 91传媒在线免费观看| 精品午夜电影| 欧美自拍偷拍一区| 黄网av在线| 免费在线观看黄| 2019最新中文字幕| 亚洲男人天堂色| 国产乱人伦丫前精品视频| 国产精品狼人久久影院观看方式| 国产91精品久久久久久久| www.日本xxxx| 国产在线拍揄自揄拍视频| 91精品国产福利在线观看麻豆| 欧美性色黄大片手机版| 天堂男人av| 久久综合图片| 欧美精品一区二区三区很污很色的| 88av.com| 国产精品69久久久久水密桃| 日韩高清有码在线| 久久久成人av毛片免费观看| 日韩精品一区二区三区视频播放 | av中文字幕一区二区三区| 亚洲第一成年网| 亚洲色图16p| 欧美三电影在线| 91超碰在线| 1769国产精品| 影音先锋一区| 国产黄视频网站| 日韩欧美国产综合一区 | 116美女写真午夜一级久久| 精品一区二区三区在线播放视频 | 欧美电影免费网站| 亚洲亚裔videos黑人hd| 黄色一级在线视频| 中文字幕亚洲精品在线观看 | 激情国产一区二区| 中文精品无码中文字幕无码专区| 久久久亚洲综合| 日韩毛片久久久| 亚洲综合大片69999| 99精品在线免费在线观看| 欧美精品在线免费观看| 日本福利在线观看| 久久精品动漫| 国产成人精品视频免费看| 一区二区三区中文字幕精品精品| 毛片在线播放a| 色妞在线综合亚洲欧美| 欧美激情91| 国产精品va无码一区二区| 久久美女艺术照精彩视频福利播放| 冲田杏梨av在线| 日韩视频永久免费| 91亚洲人成网污www| 精品久久久久av| 精品香蕉在线观看视频一| av一级久久| 欧美精品一区二区三区三州| 亚洲欧洲国产专区| 国产三级视频在线看| 亚洲国产精彩中文乱码av在线播放 | 国产美女精品一区二区三区| 三上悠亚一区| 亚洲第一免费网站| 在线看片不卡| 亚洲美女在线视频| 成人婷婷网色偷偷亚洲男人的天堂| 欧美日韩国产综合视频在线| 国产色产综合色产在线视频| 国产乱码精品一区二三赶尸艳谈| 在线成人直播| 国产一二在线观看| 国产91aaa| 日韩色视频在线观看| 亚洲系列另类av| 国产精品夜夜夜一区二区三区尤| 日本欧美在线看| 欧美最大成人综合网| 欧美一级免费观看| 成人在线视频播放| 伪装者在线观看完整版免费| 中文字幕亚洲无线码在线一区| 欧美日韩1区2区3区| 超碰96在线| 日本精品久久久久影院| 久久99久久精品| 国产 porn| 国产精品激情av电影在线观看| 日韩影院免费视频| 999在线观看视频| 7777女厕盗摄久久久| 久久精品国产**网站演员| 国产高清免费在线播放| 天天爽天天狠久久久| 国内精品久久久久久久| 国产精品美女久久久久久| 成人免费一区| 国产尤物av一区二区三区| 亚洲精品短视频| 国产成人综合亚洲91猫咪| 久久精品论坛| www在线视频| 午夜久久久精品| av一区二区三区在线观看| 亚洲美女av在线| 91福利精品视频| 中文字幕色av一区二区三区| 国产精品一区一区| 丁香另类激情小说| www免费视频观看在线| 在线观看日韩片| 国产自产女人91一区在线观看| 欧美亚洲一区二区在线| 日韩护士脚交太爽了| 丝袜国产在线| 久久美女福利视频| …久久精品99久久香蕉国产| 欧美高清dvd| 538在线一区二区精品国产| 一本大道久久精品懂色aⅴ| 欧美日韩在线精品一区二区三区激情 | 欧美成人中文| 最新av在线播放| 欧美少妇性生活视频| 国产精品日日做人人爱| 麻豆精品视频在线观看免费| 不卡一区综合视频| 亚洲激情网址| 91大神精品| 日本视频在线观看| 欧美亚洲另类视频| 国产不卡在线观看| 亚洲大尺度视频在线观看| 五月天久久网站| 国产精品a久久久久| 精品福利一区| 成人免费网站观看| 日本公妇乱淫免费视频一区三区| 午夜精品久久久久久99热| 极品尤物一区二区三区| 欧美精品国产精品日韩精品| 亚洲狠狠丁香婷婷综合久久久| 欧美网站在线| 中文字幕亚洲一区二区va在线| 国产成人综合视频| 久久久久91| 欧美人与禽猛交乱配视频| 99re6热只有精品免费观看| 欧美videosex性极品hd| 爱爱爱免费视频在线观看| 国产在线传媒| 国产视频网址在线| 麻豆系列在线观看| 午夜免费福利在线观看| 加勒比一区二区三区在线| 在线播放日本| 日本我和搜子同居的日子高清在线| 男裸体无遮挡网站| 国产高清视频网站| 成视频免费在线看| 国产特级毛片| 色老板在线观看| 国产精品久久久久久久久久99 | 色婷婷**av毛片一区| 九九精品视频在线观看| 国产精品久久久久久av| 最近2019年手机中文字幕|