如何在 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+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告