Go語言變量類型的代碼演示
basic_demo.go文件
package main
import (
"fmt"
)
const (
I = 100
PI = 3.1415
PREFIX = "Go_"
)
var (
i int
pi float32
prefix string
)
func main() {
// 分組聲明變量和常量
fmt.Println(i)
fmt.Println(PREFIX)
// 一維數組
a := [3]int{1, 2, 3}
b := [10]int{1, 2, 3}
c := [...]int{1, 2, 3}
fmt.Println(a, b, c)
// 二維數組
doubleArray := [2][4]int{[4]int{1, 2, 3, 4}, [4]int{5, 6, 7, 8}}
fmt.Println(doubleArray)
easArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}}
fmt.Println(easArray)
// 動態數組 slice並不是一個真正的動態數組,而是一個引用類型。
// 和聲明array一樣,只是少了長度
// slice := []byte{'a','b','c'}
// slice可以從一個數組或一個已經存在的slice中再次聲明
var ar = [10]byte{'a', 'b', 'c', 'd', 'e', 'd'}
var slice1, slice2 []byte
slice1 = ar[2:5]
slice2 = ar[6:]
slice3 := ar[:]
slice4 := slice3[:4]
fmt.Printf("%v,%v,%v", slice1, slice2, slice3)
fmt.Println(slice4)
// 字典map 格式爲map[keyType]valueType
// 1.直接聲明
// var numbers map[string] int
// 2.簡短的map聲明方式
// numbers := make(map[string]int)
// numbers["one"] = 1
// numbers["two"] = 2
numbers := map[string]int{"one": 1, "two": 2}
fmt.Println(numbers)
// 查找有沒有對應的key值
if _, ok := numbers["one"]; ok {
fmt.Println("有key值爲one的鍵值對!")
}
// 刪除指定key的value
delete(numbers, "two")
fmt.Println(numbers)
// 變量未填充前的默認值,“零值”
// int,int8,int32,int64,rune(rune的實際類型是int32),float32,float64 --> 0
// uint byte(byte的實際類型是uint8) --> 0x0
// bool --> false
// string --> ""
}