【Golang 基礎】Go 語言的變數與常量
Go 語言的變數與常量
變數宣告,初始化與賦值 (示例程式碼 )
var <變數名稱> [變數型別] <變數名稱> = <值,表示式,函式等> var <變數名稱> [變數型別] = <值,表示式,函式等>
package basic import "fmt" func DeclaratGroupVariable(){ // 分組宣告變數 var ( name string age int = 18 ) name = "hvkcoder" fmt.Printf("Hello!My name'is %d. I'm %d years old", name, age) }
<變數名稱> := <值,表示式,函式等> ,
package basic import "fmt" func DeclaratMultiVariable(){ // 宣告多個變數 var a , b, c int // 為多個變數賦值 a, b, c = 1 ,2, 3 fmt.Printf("a = %d , b = %d , c = %d", a, b, c) // 宣告多個變數並賦值 var e, f, g int = 4, 5, 6 fmt.Printf("e = %d , f = %d , g = %d", e, f, g) // 簡寫宣告 h, i, j := 7, 8, 9 fmt.Printf("h = %d , i = %d , j = %d", h, i, j) }
宣告全域性變數時,不能使用簡寫宣告,且必須使用var
關鍵字。變數名是 下劃線(_
) 表示忽略。
常量定義的形式,類型範圍(示例程式碼 )
-
常量定義從形式上可以分為 顯式 和 隱式;
const <常量名稱> [type] = value const <常量名稱> = value
-
一般情況下常量名稱需大寫,若該常量為私有常量,只需在常量名前加 下滑線(
_
),如:const _PI = 3.14
; -
常量可以使用內建表示式,如:
len()
,unsafe.SizeOf()
等;
package basic import "unsafe" func DeclaratExpression(){ const ( _NAME string = "hvkcoder" _NAME_LENGTH int = len(_NAME) _NAME_SIZE= unsafe.Sizeof(_NAME) ) }
- 多組常量宣告時,常量預設取上一個常量的值;
package basic import "fmt" func DeclaratGroupConstant(){ const ( _NAME string = "hvkcoder" _FIRST_NAME ) fmt.Println(_NAME) fmt.Println(_FIRST_NAME) }
常量類型範圍目前只支援 布林型、數字型和字串型別。
特殊常量 iota
-
iota
只能在常量的表示式中使用,在const
關鍵字出現時,iota
將被重置為 0; -
const
中每新增一行常量宣告,將使iota
計數一次; -
iota
常見用法:- 跳值使用法
package basic import "fmt" func JumpValueByIota(){ const ( a = 3.14 b c = iota// 2 d// 3 ) fmt.Println(a,b,c,d) }
- 插值使用法
package basic import "fmt" func InsertValueByIota(){ const ( a = iota// 0 b = 3.14 c = iota// 2 d// 3 ) fmt.Println(a,b,c,d) }
- 表示式隱式使用法
package basic import "fmt" func ExpressionByIota(){ const ( B = 1 << (10 * iota)// 1 KB// 1024 MB// 1048576 GB// 1073741824 TB// 1099511627776 PB// 1125899906842624 ) fmt.Println(B,KB,MB,GB,TB,PB) }
- 單行使用法
package basic import "fmt" func SingleLineByIota(){ const ( a , b = iota + 1, iota + 2 c, d = iota + 3, iota + 4 // a => 0 + 1 // b => 0 + 2 // c => 1 + 3 // d => 1 + 4 ) fmt.Println(a,b,c,d) }
變數的型別轉換
var <變數名稱> [:]= <目標型別>(<需要轉換的變數>)