目錄
- 運算子
- 算術運算子
- 邏輯運算子
- 位運算子
- 賦值運算子
- 比較運算子
- 陣列(Array)
- 指標
- map
運算子
算術運算子
package main
import "fmt"
func main() {
a := 6
b := 2
c := a + b //加
d := a - b //減
e := a * b //乘
f := a / b //除
fmt.Println(c, d, e, f) //8 4 12 3
}
邏輯運算子
package main
import "fmt"
func main() {
a := true
b := false
c := a && b //與
d := a || b //或
e := !a //非
fmt.Println(c, d, e) //false true false
}
位運算子
package main
import "fmt"
func main() {
a := 0b0101
b := 0b0110
c := a & b //與
d := a | b //或
e := a ^ b //異或
f := b >> 1 //右移
g := b << 1 //左移
fmt.Println(c, d, e, f, g) //4 7 3 3 12
}
賦值運算子
package main
import "fmt"
func main() {
a := 6
b := 2
a += b //加等于:a = 6 + 2 = 8
a -= b //減等于:a = 8 - 2 = 6
a *= b //乘等于:a = 6 * 2 = 12
a /= b //除等于:a = 12 / 2 = 6
a++ //a=6+1=7
a-- //a=7-1=6
fmt.Println(a) //6
}
比較運算子
package main
import "fmt"
func main() {
a := 6
b := 2
c := a < b //小于
d := a <= b //小于等于
e := a > b //大于
f := a >= b //大于等于
g := a == b //等于
h := a != b //不等于
fmt.Println(c, d, e, f, g, h) //false false true true false true
}
陣列(Array)
package main
import "fmt"
func main() {
a := []int{1, 2, 3} //中括號里可填數,代表陣列預留大小,可不填,為自適應
b := [][]int{[]int{1, 2}, []int{3, 4}}
c := make([]int, 3, 4) //make開辟一個記憶體空間
fmt.Println(a, b, c) //[1 2 3] [[1 2] [3 4]] [0 0 0]
a = append(a, 4) //在陣列a后插入元素4
fmt.Println(a) //[1 2 3 4]
var d = make([]int, 5)
copy(d, a) //拷貝
fmt.Println(d) //[1 2 3 4 0]
//遍歷方法一
for k, v := range d {
fmt.Printf("[%d %d],", k, v) //[0 1],[1 2],[2 3],[3 4],[4 0],
}
//遍歷方法二
for i := 0; i < len(d); i++ {
fmt.Printf("%d,", d[i]) //1,2,3,4,0,
}
}
指標
package main
import "fmt"
func main() {
a := "a"
b := &a //&指向記憶體地址,*指向記憶體地址上的內容
fmt.Print(a, *b, b) //a a 0xc...
}
map
map存盤的是鍵值對的資料
map遍歷與陣列類似
package main
import "fmt"
func main() {
a := make(map[string]string) //初始化map
a["key1"] = "value1" //增/改鍵值對
a["key2"] = "value2"
fmt.Println(a) //map[key1:value1 key2:value2]
fmt.Println(a["key2"]) //value2
fmt.Printf("%s, %T\n", a["key3"], a["key3"]) //, string(沒有對應的key也不會報錯)
k1, v1 := a["key2"]
fmt.Println(k1, v1) //value2 true
delete(a, "key2") //洗掉鍵值對
k2, v2 := a["key2"]
fmt.Println(k2, v2) // false
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250442.html
標籤:Go
上一篇:一道有趣的golang排錯題
下一篇:Java學習-多執行緒
