Re: [问题] Golang型态转换

楼主: s25g5d4 (function(){})()   2023-02-08 22:46:58
※ 引述《umaka0325 (Umaka)》之铭言:
: 最近在摸索Go的相关语法碰到一些问题想请教一下
: 程式码如下:
: type Person struct {
: Name string
: Age int
: }
: func test1(p *Person) {
: p.Name = "123"
: }
: func test(p any) {
: test1(p.(*Person))
: ^^^^^^^^
: }
: 想请问底线部分的*Person这个结构有什么办法从输入p any动态产生吗?
: 谢谢!!
初学者常常希望能存取不特定型别的共同字段
不过... https://tenor.com/bhDEJ.gif
正常的写法都是改写成 interface
type Person interface {
GetName() string
GetAge() int
}
type person struct {
Name string
Age int
}
func (p *person) GetName() string {
return p.Name
}
func (p *person) GetAge() int {
return p.Age
}
func test(p Person) {
otherfunc(p.GetName(), ...)
otherfunc(p.GetAge(), ...)
}
func callTest() {
pe := &person{
Name: "John Doe",
Age: 20,
}
test(pe)
}
对,golang 的 interface 就是如此繁琐

Links booklink

Contact Us: admin [ a t ] ucptt.com