【问题标题】:item.(Tweet) in Golang language, What does it mean?item.(Tweet) 在 Golang 语言中,是什么意思?
【发布时间】:2019-04-21 10:21:30
【问题描述】:

我找到了下面的 Golang 语言代码

item.(Tweet)

我已经知道每个变量都有一个方法。但我不知道上面的代码。有人知道吗?

【问题讨论】:

  • 这可能是类型断言。
  • 感谢您的帮助,它确实节省了我的时间。
  • 您可以通过A Tour of Go 来了解该语言,从而节省更多时间。
  • 重复。 20 日。

标签: go


【解决方案1】:

它叫type assertions

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

例子:

var num interface{} = 5
var numActual int = num.(int)

fmt.Println(numActual)

在上面的代码中,num 是一个类型为interface{} 的变量。它可以保存任何类型的值,但在上面的示例中,它存储了一个数字 int 数据,5

要从num 获取底层具体值,只需在变量末尾添加.(type)

num.(int)

您可以通过检查语句的第二个返回值来检查interface{} 变量是否可以转换为某种类型。示例:

if actual, ok := num.(string); !ok {
    fmt.Println("num is not string")
    fmt.Println("it's a number data with value is", actual)
}

【讨论】:

  • 感谢您的回答,非常感谢。
  • 应该将ok 更改为!ok 以获得更好的清晰度。我无法编辑它,因为它只有 1 个字符更改。
猜你喜欢
  • 2011-08-27
  • 2017-10-21
  • 2011-04-06
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2020-10-30
  • 1970-01-01
相关资源
最近更新 更多