溫馨提示×

Go語言結(jié)構體初始化有哪些方式

小樊
81
2024-11-08 13:12:13
欄目: 編程語言

在Go語言中,有多種方法可以初始化結(jié)構體。以下是一些常見的初始化方式:

  1. 使用字段名初始化:
type Person struct {
    Name string
    Age  int
}

func main() {
    p := Person{Name: "Alice", Age: 30}
    fmt.Println(p)
}
  1. 使用字段值和類型推斷初始化:
func main() {
    p := Person{"Alice", 30}
    fmt.Println(p)
}
  1. 使用指針初始化結(jié)構體:
func main() {
    p := &Person{Name: "Alice", Age: 30}
    fmt.Println(p)
}
  1. 使用結(jié)構體字面量初始化指針:
func main() {
    p := &Person{Name: "Alice", Age: 30}
    fmt.Println(p)
}
  1. 使用make函數(shù)初始化切片、映射和通道:
func main() {
    s := make([]int, 5) // 初始化長度為5的整數(shù)切片
    m := make(map[string]int) // 初始化空的字符串到整數(shù)的映射
    c := make(chan int, 5) // 初始化長度為5的整數(shù)通道
}
  1. 使用復合字面值初始化結(jié)構體:
func main() {
    p := Person{
        Name: "Alice",
        Age:  30,
        Address: struct {
            City  string
            State string
        }{
            City:  "New York",
            State: "NY",
        },
    }
    fmt.Println(p)
}

這些方法可以根據(jù)實際需求進行組合使用,以滿足不同的初始化場景。

0