如何在 Golang 中使用結構體字面量建立結構體例項?


在 Golang 中,我們可以使用結構體字面量建立結構體例項,這是一種初始化新結構體的便捷且簡潔的方法。

結構體是一種複合資料型別,它將零個或多個任意型別的命名值組合在一起。它使用 type 關鍵字定義,後跟結構體的名稱及其欄位。

語法

這是一個結構體示例 -

type Person struct {
   Name string
   Age  int
}

要使用結構體字面量建立此結構體的新例項,我們可以簡單地在花括號內指定欄位名稱和值 -

p := Person{Name: "John", Age: 30}

這將建立一個 Person 結構體的新例項,其中 Name 欄位設定為“John”,Age 欄位設定為 30。

如果我們按結構體欄位的相同順序提供值,我們也可以省略欄位名稱 -

p := Person{"John", 30}

這將建立一個 Person 結構體的新例項,其中 Name 欄位設定為“John”,Age 欄位設定為 30,順序與它們在結構體定義中出現的順序相同。

建立測試資料或使用預設值初始化結構體欄位時,結構體字面量非常有用。例如,假設我們有一個表示產品的結構體 -

type Product struct {
   Name     string
   Price    float64
   Quantity int
}

我們可以使用帶有預設值的結構體字面量建立此結構體的預設例項 -

defaultProduct := Product{Name: "Untitled Product", Price: 0.0, Quantity: 1}

這將建立一個 Product 結構體的新例項,其中 Name 欄位設定為“Untitled Product”,Price 欄位設定為 0.0,Quantity 欄位設定為 1。

示例

package main

import "fmt"

type Person struct {
   firstName string
   lastName  string
   age       int
}

func main() {
   // Creating struct instance using a struct literal
   person := Person{
      firstName: "John",
      lastName:  "Doe",
      age:       25,
   }

   fmt.Printf("First Name: %s\n", person.firstName)
   fmt.Printf("Last Name: %s\n", person.lastName)
   fmt.Printf("Age: %d\n", person.age)
}

輸出

First Name: John
Last Name: Doe
Age: 25

結論

結構體字面量是使用所需欄位值建立新結構體例項的簡潔方法。它可以用來初始化結構體欄位的預設值,或建立測試資料。

更新於: 2023年5月5日

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.