无效的指向数组的类型断言

huangapple go评论87阅读模式
英文:

Invalid type assertion by pointer to array

问题

我是你的中文翻译助手,以下是你要翻译的内容:

我对golang还不熟悉,对类型断言感到困惑。为什么下面的代码片段无法编译?在这个例子中,类型断言可能有什么问题?

arr := new([5]int)
arr1, ok := arr.(*[5]int)
英文:

I'm new to golang and confused about the type assertion. Why can't the following snippet be compiled? what could be the problem by the type assertion in this example?

arr := new([5]int)
arr1, ok := arr.(*[5]int)

答案1

得分: 3

类型断言仅适用于接口。

类型断言提供对接口值的底层具体值的访问。

来源:https://go.dev/tour/methods/15

示例:

	arr := new([5]int)
	i := interface{}(arr)
	arr1, ok := i.(*[5]int)
	fmt.Println(arr1, ok)
英文:

type assertion is only for interface.

>A type assertion provides access to an interface value's underlying concrete value.

source https://go.dev/tour/methods/15

example:

	arr := new([5]int)
	i := interface{}(arr)
	arr1, ok := i.(*[5]int)
	fmt.Println(arr1, ok)

huangapple
  • 本文由 发表于 2022年2月26日 21:06:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/71276912.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定