Go言語のnewは、指定された型の新しい領域を確保し、その領域のアドレスを返すために使用されます。以下に、newを使用したサンプルコードを記載。
golang sample
func main() {
// ポインタを作成する
p := new(int)
// ポインタのアドレスを出力する
fmt.Println(p) // => 0xc0000a6008
// ポインタの値を設定する
*p = 123
// ポインタの値を出力する
fmt.Println(*p) // => 123
}
この例では、new関数を使用して、int型の新しい領域を確保し、そのポインタを変数pに代入しています。次に、ポインタpに123を設定し、その値を出力しています。
new関数のTiptsとしては、new関数は、単純なポインタの割り当てに適しています。new関数は、ゼロ値で初期化されたポインタを返すため、ポインタが格納する値を初期化する必要がある場合は、明示的に初期化する必要があります。また、new関数は、配列やスライス、マップなどの初期化には適しておらず、make関数を使用することを推奨します。
make関数は、動的に配列、スライス、マップなどのメモリを割り当てるために使用され、配列やスライス、マップの初期化に適しています。make関数は、new関数と異なり、ゼロ値で初期化された配列やスライスを作成することができます。