第一种

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)
}