zl程序教程

您现在的位置是:首页 >  后端

当前栏目

GO结构体之间的转换

Go转换 结构 之间
2023-09-14 09:01:53 时间

第一种


package main

import (
	"fmt"
	"reflect"
)

// 进行转换时需保证字段完全一致

type Student struct {
	Age int
}

type Person struct {
	Age int
}

func main() {
	var s Student = Student{10}
	var p Person = Person{10}
	s1 := Student(p)
	fmt.Println(s)
	fmt.Println(p)
	fmt.Println(reflect.TypeOf(s1))
}

第二种

package main

import (
	"fmt"
)

// 进行type重新定义struct 相当于别名 别名会被当做新的数据类型,但是相互间是可以进行转换的

type Student struct {
	Age int
}

type Stu Student

func main() {
	var s1 Student = Student{10}
	var s2 Stu = Stu{10}
	s1 = Student(s2)
	fmt.Println(s1)
	fmt.Println(s2)
}