天天看點

go 内建方法 make,new

建立slice ,map,chan

傳回類型引用

代碼:

package main

import (
	"fmt"
	"reflect"
)

func main() {
	//makeSlice()
	//makeMap()
	makeChan()
}

//建立切片
func makeSlice(){
	mSlice := make([]string, 3)
	mSlice[0]="dog"
	mSlice[1]="cat"
	mSlice[2]="tiger"
	fmt.Println(mSlice)
}
//建立map
func makeMap(){
	mMap := make(map[int]string)
	mMap[10]="dog"
	mMap[200]="cat"
	fmt.Println(mMap)
}
//建立chan
func makeChan(){
	mChan := make(chan int)
	close(mChan)
}
           

new 内置為零

傳回傳入類型的指針位址

package main

import (
	"fmt"
	"reflect"
)

func main() {
	
	newMap()
}
func newMap(){
	mMap := new(map[int]string) //new出來是指針類型
	mMakeMap := make(map[int]string) //make出來的是引用類型
	fmt.Println(reflect.TypeOf(mMap))
	fmt.Println(reflect.TypeOf(mMakeMap))
}
           

傳回如下:

*map[int]string

map[int]string

看得出來new出來的是指針類型