I found the following code in Golang language
item.(Tweet)
I already know that there is a method for each variable. But I don't know the code above. Does anyone know?
I found the following code in Golang language
item.(Tweet)
I already know that there is a method for each variable. But I don't know the code above. Does anyone know?
It's called type assertions.
A type assertion provides access to an interface value's underlying concrete value.
Example:
var num interface{} = 5
var numActual int = num.(int)
fmt.Println(numActual)
On code above, num
is a variable whom type is interface{}
. It can hold any kind of value, but in example above it's storing a numeric int data, 5
.
To get the underlying concrete value from num
, simply add .(type)
on the end of the variable.
num.(int)
You can check whether an interface{}
variable is convertible into certain type or not, by checking the 2nd return value of the statement. Example:
if actual, ok := num.(string); !ok {
fmt.Println("num is not string")
fmt.Println("it's a number data with value is", actual)
}