Golang は、高速で信頼性が高く効率的なプログラミング言語であり、その優れたパフォーマンスと保守性により、Web 開発、サーバー プログラミング、ビッグ データ処理、その他のシナリオで人気の選択肢となっています。この記事では、Golang における新しいキーワードの使い方を紹介します。
Golang では、new はヒープにメモリを割り当て、それをゼロ値に初期化するために使用されるキーワードです。 C/C タイプの概念に精通している場合は、malloc 関数と calloc 関数の組み合わせと同様に使用できます。
new キーワードを使用してデータ用のメモリを開くのは非常に簡単です。必要なのは、新しい関数を呼び出して変数の型を渡すことだけです。例:
var data *int // 声明一个int类型指针变量data data = new(int) // 通过new函数在堆上分配一个整型数据内存,并将data指向这段内存
上記のとおりコードを実行すると、ヒープ上にメモリが正常に作成されました。整数データ メモリが割り当てられ、そのアドレスがデータ ポインタ変数に割り当てられます。次に、次のコードを使用してデータを割り当て、アクセスできます。
*data = 100 // 赋值操作,将整型数据100赋值给指针data指向的内存 fmt.Println(*data) // 访问操作,打印指针data指向的内存中存储的数据,即100
Golang では、new キーワードは変数型に対応するポインタ型を返すことに注意してください。たとえば、関数に new(int) を渡す場合、実際に渡されるのは int 型のポインタ値です。これを使用する場合は、* 演算子を使用してこのポインターを逆参照する必要があります。
基本的なデータ型に加えて、新しいキーワードを使用してユーザー定義型のインスタンスを作成することもできます。たとえば、以下では、name と age の 2 つのメンバー変数を含む構造タイプ person を定義し、new キーワードを使用してこのタイプのインスタンスを作成し、メンバー変数に値を割り当てます。
type Person struct { name string age int } p := new(Person) p.name = "joseph" p.age = 30 fmt.Println(p)
上記のコードにより、Person タイプのインスタンスが正常に作成され、メンバー変数の割り当てと印刷操作が正常に実行されました。なお、Golang では構造体のメンバ変数に p.name と (*p).name の 2 つの方法でアクセスできますが、前者は単純な書き方であり、後者の逆参照方法に自動的に変換されます。したがって、両方とも同等です。
要約すると、 new キーワードは Golang の非常に便利で実用的なメモリ割り当てツールであり、1 行のコードでヒープ上の変数型にメモリをすばやく割り当て、ゼロ値に初期化できます。 new キーワードを適切に使用することで、Golang でメモリ管理を迅速かつ効率的に実行できます。
以上がgolangの新しい使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。