「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go Structs を学んでコーディングが好きになった経緯

Go Structs を学んでコーディングが好きになった経緯

2024 年 11 月 8 日に公開
ブラウズ:707

「コードと格闘していた初期の頃のことを今でも覚えています。
How Learning Go Structs Finally Made Me Love Coding

基本的なことは?そこに着いていました。しかしその後、構造体が登場し、すべてがぼやけて感じられました。何かを壊し続けて、コードがめちゃくちゃになってしまいました。私の何が間違っていたのでしょうか?
座って Go 構造体の基本を学び、それを効果的に使い始めて初めて、ようやく物事がうまくいきました。それがターニングポイントでした。突然、コードがより組織化され、効率的で、クリーンになりました。それにより、プログラミングへの取り組み方が変わり、これまでにないほどコーディングを楽しめるようになりました。」 もしあなたが同じ立場にあるなら、構造体がなぜそれほど強力なのか疑問に思っているなら、この投稿はあなたのためです。構造体をわかりやすく説明し、構造体がコーディング ゲームをどのように変えることができるかを説明しましょう。

How Learning Go Structs Finally Made Me Love Coding

構造体とは何ですか? Go では、構造体は、さまざまな種類のデータを 1 つに束ねることを可能にする青写真のようなものです。これは、人、車、本などの複雑なエンティティをモデル化するためのカスタム データ構造と考えてください。
たとえば、 Person 構造体には、人の名前、年齢、性別などのフィールドを保持でき、関連情報をグループ化するのに最適です。

構造体を使用する理由 構造体を使用すると、関連するデータを整理してバンドルすることができるため、複雑なデータ モデルの管理が容易になります。ユーザー、製品、在庫を追跡するアプリを構築する場合でも、住所に番地、市区町村、郵便番号が含まれるのと同じように、構造体を使用するとさまざまな種類のデータをグループ化できます。

構造体の宣言: 基本 構文は非常に単純です。キーワード type、その後に構造体名、そして中かっこ内のフィールドを指定して構造体を定義します:

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
}


プログラマーはなぜ構造体を信頼しないのですか? 彼らは自分たちの「フィールド」を扱いたくないからです

How Learning Go Structs Finally Made Me Love Coding

構造体メソッド: 動作の追加

ここからがさらに興味深いことになります。構造体にメソッドをアタッチして動作を与えることができます。それは、構造体に何かを実行する能力を与えるようなものです!

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
}


「プログラムは人が読めるように書かれなければなりませんが、偶然に機械が実行できるようにする必要があります。」 — ハロルド・エイベルソン

構造体に関するよくある間違い

構造体を使いこなす前に、次のよくある落とし穴に注意してください:

    初期化されていないフィールド: フィールドが初期化されていない場合、Go はフィールドにデフォルトのゼロ値 (int の 0 や文字列の "" など) を自動的に割り当てます。
  1. 不要な場合のポインターの使用: 小さな構造体の場合、多くの場合、参照ではなく値で渡す方が効率的です。

練習すれば完璧!

    簡単: Title、Author、Pages フィールドを持つ Book 構造体を作成します。本の情報を表示するメソッドを記述します。
  1. 中級: 複数の Book 構造体を保持する Library 構造体を作成します。本を追加し、ライブラリ内のすべての本を一覧表示するメソッドを作成します。
  2. 上級: Vehicle 構造体を構築し、Fleet 構造体を使用して車両のフリートを管理し、年ごとに車両を追加、削除、検索します。

結論: 重要なポイント

    構造体は Go で関連データをグループ化するために不可欠です。
  1. メソッドやネストされた構造体を使用して構造体を強化できます。
  2. 関数内の元の構造体を変更する必要がある場合は、ポインターを使用します。
Go 構造体が私にとってコーディングを容易にしてくれるなら、あなたにとっても間違いなく同じことができるでしょう。コーディングを楽しんでください!

How Learning Go Structs Finally Made Me Love Coding

リリースステートメント この記事は、https://dev.to/githaiga22/how-learning-go-structs-finallade-me-love-coding-2pp0?1に復刻されています。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3