Skip to main content

内建方法

[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