新しいとメイクがメモリを割り当てるために使用されています
var a int
fmt.Println(a)
var b string
b = "927"
fmt.Println(b)
//输出
//0
//927
システムの基本的なタイプを使用して、メモリの割り当ての基本タイプは、作成時にデフォルト値を持っているデフォルト設定されます
var a *string
*a = "927"
fmt.Println(a)
var m map[string]int
m["id"] = 927
fmt.Println(m)
//panic: runtime error: invalid memory address or nil pointer dereference
//[signal 0xc0000005 code=0x0 addr=0x0 pc=0x49dd4a]
//
//goroutine 1 [running]:
//main.main()
// E:/goworkspace/github.com/godemo/01/main.go:8 +0x2a
ポインタと参照型は、ときにメモリを割り当てられていない場合は
、実行時エラー:無効なメモリアドレスパニックかnilポインタ参照
新着
この関数は、ポインタの新しいタイプの、このタイプのデフォルト値の値を用いて得られます。
新新(タイプ)
以下で新しい新機能
var a = new(int)
fmt.Println(*a)
*a = 927
fmt.Println(*a)
//输出
//0
//927
メイク
また、メモリの割り当てのために作る
スライス、マップメモリおよび作成ちゃん
それへのポインタを返すする必要が存在するスライス、マップとちゃん参照型
メーク(tyep、サイズ)
var m = make(map[string]int,20)
m["id"] = 927
fmt.Println(m)
//输出
//map[id:927]
新との間の差を作ります
1.newあまり使用
のみスライス、マップメモリ割り当ておよびチャンのためを2.Make
3.newがポインタタイプを返し、戻りのこのタイプは、それ自体であることを確認