2012년 4월 28일 토요일

make


객체를 생성하는데, new 이외에 make 가 있다.

make 는 오직 maps, slices, channels 에만 사용한다.

make 는 포인터를 리턴하지 않고 "value of type" 을 리턴한다.





package main
import "fmt"


func main() {    


var p1 *[] int = new([] int)
var v1   [] int = make([] int, 10, 100) // slice

fmt.Println(*p1, v1)


var p2 *[] int = new([] int)
*p2 = make([] int, 10, 100)
v2 := make([] int, 10) 

fmt.Println(*p2, v2)

}