5
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言語のmakeについて

Last updated at Posted at 2023-02-21

Go言語のmakeは、動的に配列、スライス、マップなどのメモリを割り当てるために使用されます。makeは、newとは異なり、ゼロ値で初期化された配列やスライスを作成することができます。以下に、makeを使用したスライスのサンプルコードを記載。

golang sampple

func main() {
    // スライスをmakeで作成する
    s := make([]int, 3, 5)

    // スライスの要素を設定する
    s[0] = 1
    s[1] = 2
    s[2] = 3

    // スライスの要素を出力する
    fmt.Println(s) // => [1 2 3]

    // スライスの要素数と容量を出力する
    fmt.Printf("len=%d cap=%d\n", len(s), cap(s)) // => len=3 cap=5
}

この例では、make関数を使用して、要素数が3、容量が5のint型スライスを作成しています。スライスの要素を設定し、要素を出力しています。また、スライスの要素数と容量を出力しています。

make関数の第1引数は、作成するスライス、配列、マップの型を指定します。第2引数は、作成するスライスやマップの初期要素数を指定します。第3引数は、作成するスライスやマップの容量を指定します。スライスやマップの容量は、内部的に使用される配列のサイズを指定します。スライスの容量は、そのスライスが追加要素を含めることができる最大の要素数です。

make関数を使用する際のTiptsとしては、スライスやマップを作成する場合、要素数と容量を区別することが重要です。スライスの要素数は、スライスに実際に格納されている要素数を指定し、容量は、スライスが拡張することができる最大要素数を指定します。また、make関数を使用する場合は、配列やスライス、マップの初期化に適しており、new関数は単純なポインターの割り当てに適しています。

5
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
5
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?