2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Go言語のnewについて

Last updated at Posted at 2023-02-21

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関数と異なり、ゼロ値で初期化された配列やスライスを作成することができます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?