##はじめに
Go言語でnewとmakeを使い、違いを備忘のために記します。
##環境
macOS Catalina 10.15.3
go1.13.3 darwin/amd64
##1. makeを使う
以下はmakeを使用して、変数を初期化する例です。コードは一部抜粋します。
sample.go
s := make([]int, 0)
m := make(map[string]int)
ch := make(chan int)
fmt.Printf("%T\n", s)
fmt.Printf("%T\n", m)
fmt.Printf("%T\n", ch)
###[出力結果]
[]int
map[string]int
chan int
##2. newを使う
以下はnewを使用して、変数を初期化する例です。コードは一部抜粋します。
sample.go
var p *string = new(string)
var str = new(struct{})
fmt.Printf("%T\n", p)
fmt.Printf("%T\n", str)
###[出力結果]
*string
*struct{}
##結論
newで変数を宣言すると値が返り、makeで変数を宣言するとポインタが返りました。
newとmakeの違いを問われて答えられなかったので、記事書いて頭に刻み込みます
以上!