Это называется утверждения типа .
Утверждение типа обеспечивает доступ к интерфейсу , лежащему в основе конкретного значения.
Пример:
var num interface{} = 5
var numActual int = num.(int)
fmt.Println(numActual)
В приведенном выше коде num
- это переменная, тип которой равен interface{}
. Он может содержать любое значение, но в приведенном выше примере он хранит числовые данные типа int, 5
.
Чтобы получить базовое конкретное значение из num
, просто добавьте .(type)
в конце переменной.
num.(int)
Вы можете проверить, является ли переменная interface{}
конвертируемой в определенный тип или нет, проверив 2-е возвращаемое значение оператора. Пример:
if actual, ok := num.(string); !ok {
fmt.Println("num is not string")
fmt.Println("it's a number data with value is", actual)
}