ホームページ > バックエンド開発 > Golang > Golang関数のnew、make、appendキーワードの使い方

Golang関数のnew、make、appendキーワードの使い方

WBOY
リリース: 2023-05-16 08:17:05
オリジナル
1309 人が閲覧しました

Golang は、開発効率が高く、実行速度が速く、同時処理能力が高いプログラミング言語であり、ネットワークプログラミング、サーバー開発、クラウドコンピューティングなどの分野で広く使用されています。 Golang プログラミング プロセスでは、new、make、append がよく使用されるキーワードであり、これらを正しく使用できるようになると、効率的で堅牢なコードをより快適に作成できるようになります。

この記事では、読者がこれらのキーワードをよりよく習得できるように、Golang での new、make、append の使用法を詳しく紹介します。

1. New キーワード

new は組み込み関数であり、その機能はヒープ上にメモリ空間を割り当て、その空間のアドレスを返すことです。つまり、 new は、値のゼロ値を指す型のポインターを返します。

一般に、次のように new 関数を使用して構造体のメモリ空間を割り当てます。

package main

import "fmt"

type Person struct {
    Name string
    Age int
}

func main() {
    p := new(Person)
    fmt.Println(p.Name, p.Age)
}
ログイン後にコピー

出力結果は次のようになります。

"" 0
ログイン後にコピー

出力結果では、新しい関数を使用して割り当てられた構造体メモリ空間内のフィールドはゼロ値に設定されます。新しい関数はメモリ空間を割り当てるだけであり、割り当てられたメモリ空間を自動的に初期化しないことに注意してください。

2. Make キーワード

make も組み込み関数ですが、その機能は new 関数とは少し異なります。 make の機能は、スライス、マップ、またはチャネルを作成し、その型の値を返すことです。

スライスとは、同じ型の要素の可変長シーケンスを指します。スライスを使用すると、メモリ領域をより効率的に管理できます。次のコードは、make 関数を使用して 3 つの要素を含む文字列スライスを作成する方法を示しています。

slice := make([]string, 3)
ログイン後にコピー

スライスを作成するとき、2 番目のパラメーターを使用してその容量を指定できます。例:

slice := make([]string, 3, 5)
ログイン後にコピー

ここで作成される文字列スライスの長さは 3、容量は 5 です。 make を使用してスライスを作成する場合、システムは新しく割り当てられたメモリ空間を初期化し、その中のすべての要素をゼロ値に初期化することに注意してください。

make 関数では、スライスに加えて、マップやチャネルも作成できます。以下にその使用方法を紹介します。

  1. マッピングの作成

マッピングとは、各要素が一意のキーと対応するキーと値の構造のセットを指します。価値。次のように、make 関数を使用してマッピングを簡単に作成できます。

m := make(map[string]string)
ログイン後にコピー

make 関数を使用して作成されたマッピングは初期化されており、直接操作できるようになります。

  1. チャネルの作成

チャネルは同時データ交換メソッドであり、Golang では非常に重要です。 make 関数を使用してチャネルを作成するには、次のようにチャネル要素のタイプを指定します。

ch := make(chan int)
ログイン後にコピー

チャネルを作成するとき、2 番目のパラメータを指定してチャネルのバッファ サイズを設定することもできます。

ch := make(chan int, 10)
ログイン後にコピー

3. append キーワード

append も組み込み関数であり、その機能は 1 つ以上の値をスライスの末尾に追加し、更新されたスライスを返すことです。

append 関数の構文は次のとおりです。

append(slice []type, elems ...type) []type
ログイン後にコピー

このうち、slice は追加するスライスを表し、elems はスライスに追加する値を表します。 elems は可変パラメータであり、任意の数の値を渡すことができることに注意してください。

次は、append 関数を使用して要素をスライスに動的に追加する例です:

package main

import "fmt"

func main() {
    var slice []int
    for i := 0; i < 10; i++ {
        slice = append(slice, i)
        fmt.Println(slice)
    }
}
ログイン後にコピー

出力結果は次のとおりです:

[0]
[0 1]
[0 1 2]
...
ログイン後にコピー

出力からわかるようにこの関数は、append が呼び出されるたびに、スライスの末尾に新しい要素を追加します。

追加される要素の数がスライスの残りのスペースよりも多い場合、追加関数はメモリ空間を再割り当てし、元のデータを新しいメモリ空間にコピーすることに注意してください。したがって、追加機能を使用する場合は、パフォーマンスの低下を避けるためにスライス容量が不足しないようにする必要があります。

概要

この記事では、Golang での new、make、append キーワードの使用法を詳しく紹介します。これらのキーワードの使用法を学ぶことで、Golang の基本構文をよりよく習得し、効率的に書くことができます。 、堅牢なコード。実際のプロジェクトでは、コードをよりエレガントで効率的にするために、特定のニーズに応じてこれらのキーワードを適切に使用する必要があります。

以上がGolang関数のnew、make、appendキーワードの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート