英文:
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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论