本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

内置类型

一、值类型

1.数值型

整数型: // unsafe.Sizeof(3)查看占用空间,占用空间不一样,int是根据电脑位数来的 int, int8, int16, int32(rune), int64 uint, uint8(byte), uint16, uint32, uint64 注: intuint的区别:取值范围不一样,如int8(-128-127),uint8(0-255) 其中u开头的类型就是指:正整数和零,非u开头的可以是负数 浮点型: float32:单精度浮点型 float64:双精度浮点型 注: float32:总长是8,总长度的第九位四舍五入 float64:总长是16,总长度的第十七位四舍五入 虚数型: complex64, complex128 // complex64:占8个长度,complex128:占16个长度 注:两个浮点数,一个表示实部(real),一个表示虚部(imag)

注意:不允许在整数型_变量和浮点型变量_之间进行运算,这里是变量

b := 20.1 c := 30 fmt.Println(b + c) // 变量,这种不行 fmt.Println(b + 30) // 这种可以

2.字符串类型

string 字符串相关操作接口: 字符串转大写:srings.ToUpper(str string) string 字符串转小写:strings.ToLower(str string) string 根据空格分隔,返回切片 strings.Field(str string) []string 将子串用sep连接起来 strings.Join(s1 []striing, sep string) string 子串出现次数 strings.Count(str string, substr string) int 字符串替换 strings.Replace(s string, old string, new string, n int) string n 为-1 表示全部替换,否则表示替换次数 判断字符串s是否已prefix开头 strings.HasPrefix(s string, prefix string) bool 判断字符串s是否已subffix结尾 strings.HasSuffix(s string, subffix string) bool

3.布尔型

booltruefalse 注:不能用空值(nil)或0等值直接判断

4.数组

array -- 固定长度的数组 注意:数组是个值类型 func TestArr(arr [5]int) { arr[1] = 1 fmt.Println(arr) } func main() { arr := [5]int{1} TestArr(arr) fmt.Println(arr) } 打印结果: [1 1 0 0 0] TestArr改变了 [1 0 0 0 0] 原数组没变

二、引用类型

1.slice:切片

func main() { arr := []int{1,2,3} TestSlice(arr) fmt.Println(arr) } func TestSlice(arr []int) { arr[1] = 1 fmt.Println(arr) } 结果: [1 1 3] [1 1 3] 会改变原值

2.map:映射(make看函数章节)

func main() { map_data := map[string]interface{}{ "name":"zhiliao", "age":18, } TestMap(map_data) fmt.Println(map_data) } func TestMap(map_data map[string]interface{}) { map_data["name"] = "hallen" fmt.Println(map_data) } 结果: map[age:18 name:hallen] map[age:18 name:hallen] 会改变原值

3.chan:管道(看并发章节)

初始化方式: 1.var 通道名 chan 数据类型 2.通道名 := make(chan 数据类型)

注意:对于引用类型的变量,初始化值的时候,我们不光要声明它,还要为它分配内容空间

1414人已阅读,今天你学习了吗?

添加新回复