Go で構造体を使用するにはどうすればよいですか?
プログラムを設計するとき、構造体を使用するのは非常に一般的な方法です。 Go 言語では、構造はコードをより適切に整理および管理するのに役立つ非常に強力な概念です。この記事ではGoにおける構造体の使い方を詳しく解説していきます。
構造体とは何ですか?
構造はカスタム データ型であり、複数のデータ フィールドで構成されます。各フィールドには、数値、文字列、ブール値などの基本的なデータ型、または他の構造の組み合わせを使用できます。構造体のフィールドには、オブジェクトのプロパティと同様に、ドット表記を使用してアクセスできます。
Go では、型を使用して構造を定義できます。
type Person struct {
name string age int language []string
}
この例では、名前、年齢、言語の 3 つのフィールドを持つ Person という名前の構造体を定義します。 name は文字列型、age は int 型、そして language は文字列スライスです。次のコマンドを使用して、新しい Person 構造を作成できます。
person := person{名前: "Tom"、年齢: 25、言語: []string{"中国語"、"英語"}}
ドットは次のフィールドで使用できます。構造体 アクセス方法:
fmt.Println(person.name)
Go 構造体の匿名フィールド
Go では、匿名フィールドを使用して構造体をより詳細にすることもできます。コンパクト。匿名フィールドは構造体フィールドであり、名前がありません。 2 つ以上のフィールドが同じ型である場合、それらは匿名フィールドとして定義できます。
以下は匿名フィールドをサポートする例です:
type person struct {
name string address
}
type address struct {
street string city string state string
}
上記のコードでは、Person 構造体に address という名前の匿名フィールドが含まれています。この構造体は、番地、都市、州の 3 つのフィールドを持つ住所タイプも定義します。このようにネストされたフィールドにアクセスできます。
人 := 人{名前: "トム"、住所: 住所{通り: "メインストリート"、都市: "ニューヨーク"、州: "ニューヨーク"}}
fmt .Println(person.address.city)
Go 構造におけるネストされた構造
構造は相互にネストすることができるため、より複雑なデータ構造を作成できます。構造は別の構造内に埋め込むことができます。
type Person struct {
name string contact Contact
}
type Contact struct {
email string phone string address string
}
上記のコードでは、Person 構造体はボディ内に Contact 構造がネストされています。新しい Person 構造は次の方法で作成できます。
person := person{名前: "Tom"、連絡先: Contact{電子メール: "tom@gmail.com"、電話番号: "888-888-8888"、住所: "Main St."}}
fmt.Println(person.contact.phone)
Go 構造体のメソッド
Go では、構造体でメソッドを定義でき、これらのメソッドは構造体インスタンスを介して渡すことができます。電話すること。メソッドは、構造体を通じてのみ呼び出すことができる特別な関数です。
次のコードを使用してメソッドを追加できます。
type Person struct {
name string age int
}
func (p Person)sayHello() {
fmt.Printf("Hello, my name is %s, I'm %d years old.
", p.name, page)
}
上記のコードでは、sayHello() は Person という名前の構造体のメソッドです。
次のコードを使用して、このメソッドを呼び出すことができます。
# person := Person{name: "Tom", age: 25}person.sayHello()
以上がGo で構造体を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











GO言語で効率的なキー価値ペアストレージを実装する正しい方法GO言語でRedisと同様のキー値ペアメモリを開発するときに最高のパフォーマンスを実現する方法...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

現在のGOプログラミングエコシステムにおけるGOフレームワークのオーディエンスステータスの分析では、開発者はビジネスニーズを満たすために適切なフレームワークを選択することに直面しています。今日私たち...

go言語でのinit()関数の実行順序は、goプログラミングで、init()関数は特別な関数であり、パッケージの初期化時に必要な関数を実行するために使用されます...

GOスライシングインデックスの国境を越えた問題の調査:GOの単一エレメントスライス傍受、スライスは、配列などに使用できる柔軟なデータ構造です...
