登录
首页 >  Golang >  Go问答

规范中的Go类型断言:是否有任何错误?

来源:stackoverflow

时间:2024-02-11 10:48:21 397浏览 收藏

大家好,我们又见面了啊~本文《规范中的Go类型断言:是否有任何错误?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

go 规范类型断言中是否存在错误?

A type assertion used in an assignment statement or initialization of the special form
v, ok = x.(T)
v, ok := x.(T)
var v, ok = x.(T)
var v, ok interface{} = x.(T) // dynamic types of v and ok are T and bool

yields an additional untyped boolean value.

最后一个例子的含义是什么? var v,好的接口{} = x.(t)

我在 go 1.19 中遇到错误 syntax 错误:意外的接口,期望 := 或 = 或逗号


正确答案


所有这些行都在尝试相同的操作:x 的类型断言以键入 T。值 ok 确定断言是否成功。在您提供的最后一个示例中,唯一的区别是,您没有为 vok 确定类型,而是为两者提供了 interface{} 的类型。将 vok 声明为 interface{} 不会更改它们包含的值。它允许您将它们发送到函数或将它们添加到需要 interface{} 类型的集合中,此时必须再次断言它们。

本篇关于《规范中的Go类型断言:是否有任何错误?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>