interface{} — это пустой интерфейс в Go, который может хранить значения любого типа. Поскольку каждый тип в Go по определению реализует ноль методов, все типы автоматически удовлетворяют пустому интерфейсу.
После того как значение сохранено в interface{}, ты должен использовать утверждения типов, чтобы получить исходное значение:
var x interface{} = "hello"
str := x.(string)
Для работы с несколькими возможными типами используй переключатель типов:
switch v := x.(type) {
case string:
fmt.Println("String:", v)
case int:
fmt.Println("Integer:", v)
default:
fmt.Println("Unknown type")
}
value, ok := x.(string)interface{} жертвует типобезопасностью и должен использоваться с осторожностьюПустой тип интерфейса interface{} может содержать значения любого типа, потому что все типы в Go автоматически реализуют нулевое количество методов, требуемых пустым интерфейсом.
Новый — ещё не проверен сообществом
Вы