第一种
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)
}