Go基礎及語法(二)

運算符

算術運算符

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
}
相關文章
相關標籤/搜索