作者umaka0325 (Umaka)
看板Programming
标题[问题] Golang型态转换
时间Fri Sep 2 14:40:21 2022
最近在摸索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动态产生吗?
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.218.181.99 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1662100823.A.CD1.html
※ 编辑: umaka0325 (180.218.181.99 台湾), 09/02/2022 15:01:20
1F:推 lycantrope: 可以用switch p.(type)分歧到不同case 133.51.216.29 09/02 16:20
2F:→ lycantrope: 实际上any就是interface{} 133.51.216.29 09/02 16:22
3F:→ umaka0325: 因为输入p可能有很多种 用switch方式会 180.218.181.99 09/02 16:30
4F:→ umaka0325: 需要写很多case 所以才想用动态产生 180.218.181.99 09/02 16:30
5F:推 lycantrope: 可能需要重构function吧. 133.51.216.29 09/02 16:42
6F:→ lycantrope: p很多种但行为一样就用interface定义 133.51.216.29 09/02 16:48