gpt4 book ai didi

go - 如何将 Go 中的 map 类型转换为自定义类型?

转载 作者:IT王子 更新时间:2023-10-29 02:34:40 25 4
gpt4 key购买 nike

我定义了一个自定义类型:

type Thingy map[string]interface{}

我有一个传递空接口(interface)参数的函数:

func f(arg interface{})

我想做的是能够将 arg 类型转换为 Thingy 类型的变量。我一定是误解了 Go 的一些基本知识,因为我无法让它工作:

t, ok := arg.(Thingy)

ok 总是在那里返回 false。有任何想法吗?完整示例在这里:http://play.golang.org/p/TRZsX4v8-S

最佳答案

  1. 这不是强制转换,而是类型断言。
  2. 您传递的不是Thingy,而是map[string]interface{}

重要的是要理解,仅仅因为类型看起来相似,并不意味着您可以互换使用它们。当有方法集时,这是最重要的。对两种不同类型的 x() 的调用必须是可区分的,即使底层类型相同也是如此。

关于go - 如何将 Go 中的 map 类型转换为自定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21251660/

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