内建方法
[TOC]
切片 Map 管道
创建的方法有 make 和 new
区别
- make 返回引用类型
- new 返回指针类型
例子
package main
import (
"fmt"
"reflect"
)
func main() {
makeSlice()
makeMap()
makeChan()
NewMap()
}
// 创建切片
func makeSlice() {
mSlice := make([]string,3)
mSlice[0] = "AAA"
mSlice[1] = "BBB"
mSlice[2] = "CCC"
fmt.Println(mSlice)
}
// 创建Map
func makeMap() {
mMap := make(map[int]string)
mMap[10] = "AAAA"
mMap[100] = "BBBB"
mMap[200] = "CCCC"
fmt.Println(mMap)
}
// 创建管道
func makeChan(){
mChan := make(chan int,4)
close(mChan)
}
// new 和 make 的不同点
func NewMap() {
mNewMap := new(map[int]string)
mMakeMap := make(map[int]string)
fmt.Println("mNewMap",reflect.TypeOf(mNewMap))
fmt.Println("mMakeMap",reflect.TypeOf(mMakeMap))
}
slice 内建方法
slice -> append & copy
append 添加一个数据
copy 把第二个参数copy到第一个参数里面
如果第一个参数的长度小于第二个参数,拷贝后的结果是只拷贝第一个参数长度的slice;
如果第一个参数的长度大于第二个参数,拷贝后的结果是,第一个参数长度超过第二个参数长度的数据不变。
- map -> delete 删除map里的一个值
func deleteFromMap() {
mIdMap := make(map[int]string)
mIdMap[1] = "dddddd"
mIdMap[2] = "xxxx"
delete(mIdMap,1)
fmt.Println(mIdMap)
}
Len & cap & close 支持的类型
- Len 取长度 支持 string 、 array、 slice、 map、 chan
- cap 取容量 支持 slice、 array、 chan
- close 结束 只支持 chan