使用關鍵字var定義變數,自動初始化為零值。如果提供初始化值,可省略變數型別。
在函式內部,可用更簡略的:=方式定義變數。空白符號_
package main
import
"fmt"
func
test()
,2,0
//函式內部:=定義變數陣列data[0],data[1],data[2]並賦值0,1,2,且i=0
i, data[i]=2
,100
// (data[0] = 100),(i = 0) -> (i = 2) | 從右往左賦值
fmt.
println
(i, data[i]
, data[0]
)}func
main()
輸出結果:
2 2 100
有關指標詳見go語言的指標*和&
&符號的意思是對變數取位址,如:變數a的位址是&a
*符號的意思是對指標取值,如:*(
&a),就是a變數所在位址的值,等於a
package main
import
"fmt"
func
main()
}
輸出結果:
0xc0000461f0
0xc0000461f0 20
0xc000014110 30
package main
import
("fmt"
)func
main()
//指標陣列(是陣列)
fmt.
println
(ar)
}
輸出結果:
a = 1
&a = 0xc0000140d8
*b = 1
b = 0xc0000140d8
&b = 0xc000006028
**c = 1
c = 0xc000006028
&c = 0xc000006030
x = 1
[0xc00001c0d8 0xc00001c0f0]
列舉關鍵字 iota 定義常量組中從 0 開始按行計數的自增列舉值。如果 iota 自增被打斷,須顯式恢復。
const
( a =
iota
// 0
b // 1
c ="c"// c
d // c,與上⼀一⾏行相同。
e =iota
// 4,顯式恢復。注意計數包含了 c、d 兩⾏行。
f // 5
)
使用 「`」 定義不做轉義處理的原始字串,支援跨行。
s :=
`ab\r\n\x00
c`println
(s)
輸出結果:
ab\r\n\x00
c要修改字串,可先將其轉換成 rune 或 byte,完成後再轉換為 string。無論哪種轉換,都會重新分配記憶體,並複製位元組陣列。
package main
import
"fmt"
func
main()
輸出結果:
abcd
**用 for 迴圈遍歷字串時,也有 byte 和 rune 兩種方式。
package main
import
"fmt"
func
main()
fmt.
println()
for_
, r :=
range s
}
輸出結果:
a,b,c,æ,±,‰,å,,—,
a,b,c,漢,字,
switch對應著case。語句對語句,
import
("fmt"
)func
main()
}
輸出結果:
a>=0
a>=1
跳轉語句goto(調整執行位置)、continue(跳出當前迴圈)、break(退出)配合標籤可用於多層迴圈的跳出
指向陣列的指標(new關鍵字建立的陣列返回的也是指向陣列的指標)和指標陣列
a :=
[...
]int
fmt.
println
(a)var p *[10
]int
=&a //指向陣列的指標(是指標)
fmt.
println
(p)n :=
new([10
]int
)fmt.
println
(n)/*
x, y := 1, 2
ar := [...]*int //指標陣列(是陣列)
fmt.println(ar) //輸出[0xc00001c0d8 0xc00001c0f0]
*/
輸出結果:
[0 0 0 0 0 0 0 0 0 4]
&[0 0 0 0 0 0 0 0 0 4]
&[0 0 0 0 0 0 0 0 0 0]
切片slice(指向底層的陣列)
為引用型別,len()獲取元素個數,cap()獲取容量,一般使用make()建立,make(t,len,cap(可省略,則和len值相同))
go學習筆記
那些打不倒你的,終將讓你變的更強 package main import fmt func main 輸出結果 num1的型別是 int,數值是 30 num2的型別是 int,數值是 40 name的型別是 string,數值是 zhangshang sum的型別是 int,數值是 30 1 2 ...
Go學習筆記
go語言型別宣告語句 一 宣告變數 var 基本資料型別 1.整型 基礎型別 變數的宣告 變數的字面值為整型 var a int 自動初始化為0 變數的賦值 a 100 var b 200 隱式宣告變數並初始化 var c int 300 顯式宣告型別的變數 d 400 自動推導變數的型別 w,z ...
Go學習筆記
簡單的go 優雅地解決棘手的併發問題 go 語言 包 fmt 字串格式化包 flag 接受和解析命令引數包 log 日誌輸出包,log.fatal 輸出致命錯誤 net http 網路程式設計之http包 疑問 形式引數 r http.request asta 人名 xie 謝孟軍 beego作者,...