Go语言变量类型的代码演示
basic_demo.go文件
package main
import (
"fmt"
)
const (
I =
PI =
PREFIX = "Go_"
)
var (
i int
pi float32
prefix string
)
func main() {
// 分组声明变量和常量
fmt.Println(i)
fmt.Println(PREFIX)
// 一维数组
a := ]int,,}
b := ]int,,}
c := [...]int,,}
fmt.Println(a, b, c)
// 二维数组
doubleArray := ]]int{]int,,,}, ]int,,,}}
fmt.Println(doubleArray)
easArray := ]]int{,,,}, ,,,}}
fmt.Println(easArray)
// 动态数组 slice并不是一个真正的动态数组,而是一个引用类型。
// 和声明array一样,只是少了长度
// slice := []byte{'a','b','c'}
// slice可以从一个数组或一个已经存在的slice中再次声明
var ar = ]byte{'a', 'b', 'c', 'd', 'e', 'd'}
var slice1, slice2 []byte
slice1 = ar]
slice2 = ar:]
slice3 := ar[:]
slice4 := slice3[]
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":, "two":}
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 --> ""
}