ホームページ  >  記事  >  バックエンド開発  >  Go で構造体を使用するにはどうすればよいですか?

Go で構造体を使用するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-05-11 16:34:42957ブラウズ

プログラムを設計するとき、構造体を使用するのは非常に一般的な方法です。 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()

上記の例では、Person オブジェクトを作成し、sayHello() メソッドを呼び出しました。

結論

Go 構造は、オブジェクト指向プログラミングにおいて非常に重要な概念であり、コードを整理および管理するための優れた方法を提供します。 Go で構造体の使用方法を詳しく紹介しました。構造体の定義、匿名フィールドとネストされた構造体の使用、メソッドの定義と呼び出しについて学びました。この記事が役に立ち、Go 言語をより良く習得するのに役立つことを願っていますプログラミング。###

以上がGo で構造体を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。