「コードと格闘していた初期の頃のことを今でも覚えています。
基本的なことは?そこに着いていました。しかしその後、構造体が登場し、すべてがぼやけて感じられました。何かを壊し続けて、コードがめちゃくちゃになってしまいました。私の何が間違っていたのでしょうか?
座って Go 構造体の基本を学び、それを効果的に使い始めて初めて、ようやく物事がうまくいきました。それがターニングポイントでした。突然、コードがより組織化され、効率的で、クリーンになりました。それにより、プログラミングへの取り組み方が変わり、これまでにないほどコーディングを楽しめるようになりました。」
もしあなたが同じ立場にあるなら、構造体がなぜそれほど強力なのか疑問に思っているなら、この投稿はあなたのためです。構造体をわかりやすく説明し、構造体がコーディング ゲームをどのように変えることができるかを説明しましょう。
構造体とは何ですか?
Go では、構造体は、さまざまな種類のデータを 1 つに束ねることを可能にする青写真のようなものです。これは、人、車、本などの複雑なエンティティをモデル化するためのカスタム データ構造と考えてください。
たとえば、 Person 構造体には、人の名前、年齢、性別などのフィールドを保持でき、関連情報をグループ化するのに最適です。
構造体を使用する理由
構造体を使用すると、関連するデータを整理してバンドルすることができるため、複雑なデータ モデルの管理が容易になります。ユーザー、製品、在庫を追跡するアプリを構築する場合でも、住所に番地、市区町村、郵便番号が含まれるのと同じように、構造体を使用するとさまざまな種類のデータをグループ化できます。
構造体の宣言: 基本
構文は非常に単純です。キーワード type、その後に構造体名、そして中かっこ内のフィールドを指定して構造体を定義します:
type Person struct { Name string Age int Gender string }これで、名前 (文字列)、年齢 (整数)、性別 (文字列) の 3 つのフィールドを含む Person 構造体が完成しました。
構造体フィールドへのアクセスと変更
構造体のフィールドにアクセスするには、ドット (.) 演算子を使用するだけです:fmt.Println("名前:", person.Name) fmt.Println("年齢:", person.Age) fmt.Println("性別:", person.Gender)
type Person struct { Name string Age int Gender string }フィールドを変更しますか?簡単!他の変数と同じように値を変更できます:
人物.年齢 = 26 fmt.Println("更新された年齢:", person.Age)
type Person struct { Name string Age int Gender string }
プログラマーはなぜ構造体を信頼しないのですか?
彼らは自分たちの「フィールド」を扱いたくないからです
構造体メソッド: 動作の追加
ここからがさらに興味深いことになります。構造体にメソッドをアタッチして動作を与えることができます。それは、構造体に何かを実行する能力を与えるようなものです!Person 構造体の Greet メソッドを定義しましょう:
func (p 人) Greet() string { return "こんにちは、私の名前は " p.Name }
type Person struct { Name string Age int Gender string }これで相手に挨拶させることができます:
fmt.Println(person.Greet())
type Person struct { Name string Age int Gender string }
入れ子になった構造体を使用した構造体: 物事を複雑にしつつもシンプルにする
Go 構造体は内部に他の構造体を保持できるため、より複雑なデータをモデル化する場合に便利です。完全なプロファイルの Address 構造体を含む Student 構造体を想像してください:type アドレス構造体 { 都市文字列 状態文字列 } type Student struct { 名前文字列 年齢整数 住所 住所 }
type Person struct { Name string Age int Gender string }これで Student を作成し、次のようにネストされたフィールドにアクセスできるようになります:
学生 := 学生{ 名前:「フレッド・ギトンガ」、 年齢:21歳、 住所: 住所{ 都市: 「キスム」、 状態: 「マンボレオ」、 }、 } fmt.Println(学生.名前, "住んでいる", 学生.住所.市)
type Person struct { Name string Age int Gender string }
「プログラムは人が読めるように書かれなければなりませんが、偶然に機械が実行できるようにする必要があります。」 — ハロルド・エイベルソン
構造体に関するよくある間違い
構造体を使いこなす前に、次のよくある落とし穴に注意してください:
練習すれば完璧!
結論: 重要なポイント
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3