gpt4 book ai didi

Golang 类型在指向一种类型 slice 的指针 slice 与另一种类型 slice 之间的类型转换

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:55 30 4
gpt4 key购买 nike

我是 Golang 的新手。
当我尝试它时,出现编译错误:

cannot use a.B (type []*C) as type []Z in field value

代码:

package main

type A struct {
B []*C
}

type C struct {
char string
}

type X struct {
Y []Z
}

type Z struct {
char string
}

func doSomething(r interface{}) X {
a := r.(*A)
return X{
Y: a.B, // cannot use a.B (type []*C) as type []Z in field value
}
}

func main() {
something := &C{"abc"}
somewhere := A{}
somewhere.B = []*C{something}

doSomething(somewhere)
}

我想解决的方法是遍历 slice 并将其分配给另一个 slice 。但我知道一定有其他方法可以做到这一点。

去 Playground :https://play.golang.org/p/v0PUTPh6Mt

最佳答案

使用for 循环来转换 slice 中的每个值。别无他法

https://play.golang.org/p/oQi6oVz6My

关于Golang 类型在指向一种类型 slice 的指针 slice 与另一种类型 slice 之间的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724811/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com