ホームページ >バックエンド開発 >Golang >Go Structs を学んでコーディングが好きになった経緯

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-07 16:08:29549ブラウズ

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

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

How Learning Go Structs Finally Made Me Love Coding

構造体とは何ですか?
Go では、構造体は、さまざまな種類のデータを 1 つに束ねることを可能にする青写真のようなものです。これは、人、車、本などの複雑なエンティティをモデル化するためのカスタム データ構造と考えてください。
たとえば、 Person 構造体には、人の名前、年齢、性別などのフィールドを保持でき、関連情報をグループ化するのに最適です。
構造体を使用する理由
構造体を使用すると、関連するデータを整理してバンドルすることができるため、複雑なデータ モデルの管理が容易になります。ユーザー、製品、在庫を追跡するアプリを構築する場合でも、住所に番地、市区町村、郵便番号が含まれるのと同じように、構造体を使用するとさまざまな種類のデータをグループ化できます。
構造体の宣言: 基本
構文は非常に単純です。キーワード type、その後に構造体名、そして中かっこ内のフィールドを指定して構造体を定義します。



type Person struct {
    Name   string
    Age    int
    Gender string
}


これで、名前 (文字列)、年齢 (整数)、性別 (文字列) の 3 つのフィールドを含む Person 構造体が完成しました。

構造体フィールドへのアクセスと変更

構造体のフィールドにアクセスするには、単純にドット (.) 演算子を使用します。


fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("Gender:", person.Gender)



フィールドを変更しますか?簡単!他の変数と同じように値を変更できます:


person.Age = 26
fmt.Println("Updated Age:", person.Age)


プログラマーはなぜ構造体を信頼しないのですか?
彼らは自分たちの「畑」を扱いたくないからです
How Learning Go Structs Finally Made Me Love Coding

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

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

Person 構造体の Greet メソッドを定義しましょう:


func (p Person) Greet() string {
    return "Hello, my name is " + p.Name
}



これで、相手に挨拶させることができます:


fmt.Println(person.Greet())



入れ子になった構造体を使用した構造体: 物事を複雑にしつつもシンプルにする

Go 構造体は内部に他の構造体を保持できるため、より複雑なデータをモデル化する場合に便利です。完全なプロファイルの Address 構造体を含む Student 構造体を想像してください:


type Address struct {
    City  string
    State string
}

type Student struct {
    Name    string
    Age     int
    Address Address
}



これで Student を作成し、次のようにネストされたフィールドにアクセスできるようになります:


student := Student{
    Name: "Fred Gitonga",
    Age:  21,
    Address: Address{
        City:  "Kisumu",
        State: "Mamboleo",
    },
}

fmt.Println(student.Name, "lives in", student.Address.City)



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

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

構造体を乱暴に使用する前に、次のよくある落とし穴に注意してください。

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

練習すれば完璧になります!

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

結論: 重要なポイント

  1. 構造体は、Go で関連データをグループ化するために不可欠です。
  2. メソッドやネストされた構造体を使用して構造体を拡張できます。
  3. 関数内の元の構造体を変更する必要がある場合は、ポインタを使用します。

私にとって Go 構造体がコーディングを容易にするのであれば、あなたも同じようにしてくれるはずです。コーディングを楽しんでください!

How Learning Go Structs Finally Made Me Love Coding

以上がGo Structs を学んでコーディングが好きになった経緯の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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