首頁  >  文章  >  後端開發  >  學習 Go 結構最終如何讓我愛上編碼

學習 Go 結構最終如何讓我愛上編碼

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-07 16:08:29525瀏覽

「我仍然記得早期與程式碼搏鬥的日子。
How Learning Go Structs Finally Made Me Love Coding

基本的東西?我正要到那裡。但後來出現了結構體,一切都變得模糊起來。我不斷地破壞東西,我的程式碼一團糟。我做錯了什麼?
直到我坐下來,學習了 Go 結構體的基礎知識,並開始有效地使用它們,事情才終於有了進展。那是轉捩點。突然間,程式碼變得更有組織、更有效率、更乾淨。它改變了我編程的方式,我開始享受前所未有的編碼樂趣。 ”
如果您也有同樣的想法,想知道為什麼結構如此強大,那麼這篇文章就是為您準備的。讓我帶您經歷揭開結構神秘面紗的旅程,並向您展示它們如何改變您的編碼遊戲!

How Learning Go Structs Finally Made Me Love Coding

什麼是結構體?
在 Go 中,結構就像一個藍圖,可讓您將不同類型的資料捆綁在一起。將其視為用於對人、汽車或書籍等複雜實體進行建模的自訂資料結構。
例如,Person 結構體可以保存人員姓名、年齡和性別等字段,非常適合將相關資訊分組。
為什麼要使用結構體?
結構可協助您將相關資料組織和捆綁在一起,從而更輕鬆地管理複雜的資料模型。無論您正在建立一個追蹤用戶、產品還是庫存的應用程序,結構都允許您對不同類型的資料進行分組,就像地址如何包含街道、城市和郵政編碼一樣。
聲明結構體:基礎知識
語法非常簡單。您可以使用關鍵字 type 定義一個結構體,後面跟著結構體名稱,然後是大括號內的欄位:



type Person struct {
    Name   string
    Age    int
    Gender string
}


現在您有一個 Person 結構體,其中包含三個欄位:Name(字串)、Age(int)和 Gender(字串)。

存取和修改結構體欄位

要存取結構體的字段,只需使用點 (.) 運算符:


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 結構體可以在其中保存其他結構體,當您想要對更複雜的資料進行建模時,這非常有用。想像一個 Student 結構,其中包含一個完整配置的 Address 結構:


type Address struct {
    City  string
    State string
}

type Student struct {
    Name    string
    Age     int
    Address Address
}



現在您可以建立一個學生並存取巢狀字段,如下所示:


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

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



“程式必須編寫供人閱讀,並且只是順便供機器執行。” — 哈羅德·阿貝爾森

結構體的常見錯誤

在使用結構之前,請注意以下常見陷阱:

  1. 未初始化的字段:如果您不初始化字段,Go 會自動為字段分配預設的零值(例如整數為 0 或字串為「」)。
  2. 不需要時使用指標:對於小型結構,透過值傳遞它們通常比透過引用傳遞它們更有效。

熟能生巧!

  1. 簡單:建立一個包含標題、作者和頁面欄位的 Book 結構。寫一個顯示書籍資訊的方法。
  2. 中級:建立一個包含多個 Book 結構的 Library 結構。編寫方法來添加書籍並列出圖書館中的所有書籍。
  3. 進階:建造車輛結構並使用 Fleet 結構管理車隊,完成按年份添加、刪除和搜尋車輛。

結論:重點

  1. 結構體對於 Go 中相關資料的分組至關重要。
  2. 您可以使用方法甚至巢狀結構來增強結構。
  3. 當需要修改函數內的原始結構時,請使用指標。

如果 Go 結構體可以讓我的編碼變得更容易,那麼它們肯定也會為你做同樣的事情。快樂編碼!

How Learning Go Structs Finally Made Me Love Coding

以上是學習 Go 結構最終如何讓我愛上編碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn