Golang语言中的项目(推文),这是什么意思?

Hon*_*oe -2 go

我用Golang语言找到了以下代码

item.(Tweet)
Run Code Online (Sandbox Code Playgroud)

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

nov*_*ung 5

这称为类型断言

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

例:

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

fmt.Println(numActual)
Run Code Online (Sandbox Code Playgroud)

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

要从获得基本的具体值num,只需.(type)在变量的末尾添加。

num.(int)
Run Code Online (Sandbox Code Playgroud)

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

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