囲碁言語学習:新しいとメイク

新しいとメイクがメモリを割り当てるために使用されています

	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がポインタタイプを返し、戻りのこのタイプは、それ自体であることを確認

公開された11元の記事 ウォンの賞賛1 ビュー1254

おすすめ

転載: blog.csdn.net/ZHOUAXING/article/details/105044524