首页 > 文章列表 > golang如何将结构分配给另一个结构?

golang如何将结构分配给另一个结构?

golang
168 2023-07-10

问题内容

golang如何将结构分配给另一个结构?

正确答案

如果要将一个不同类型的结构体的值分配给另一个结构体,两个结构体的字段必须是兼容的。在Go语言中,只有当两个结构体具有相同的字段名称、相同的字段类型和相同的字段顺序时,才可以进行赋值操作。

以下是一个示例,演示如何将一个不同类型的结构体的值分配给另一个结构体:

package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

type Employee struct {
	Name   string
	Age    int
	Salary float64
}

func main() {
	// 创建源结构体实例
	source := Person{Name: "Alice", Age: 25}

	// 创建目标结构体实例
	var destination Employee

	// 将源结构体的值分配给目标结构体
	destination.Name = source.Name
	destination.Age = source.Age

	// 打印目标结构体的值
	fmt.Println(destination) // 输出:{Alice 25 0}
}

在上述示例中,我们定义了两个不同类型的结构体:PersonEmployee。我们创建了一个源结构体实例source,并设置其字段的值。然后,我们创建一个空的目标结构体实例destination。通过将源结构体的值分配给目标结构体的各个字段,我们将source.Name分配给destination.Namesource.Age分配给destination.Age。最后,我们打印目标结构体的值,验证复制是否成功。

注意:如果类型相同,可以直接赋值。