В языке Go есть т. н. «пустой» интерфейс interface{}. Он не содержит в себе никаких методов, описывающих поведение программной сущности. А это значит, что любое значение может быть приведено к типу interface{}. Это несет в себе колоссальные возможности и опасность… Где использовать? Пустой интерфейс используется, когда заранее неизвестен тип данных. 1. Например, когда в вызываемую функцию нужно передать аргумент неопределенного типа данных, в ее сигнатуре можно указать, как параметр функции, пустой интерфейс: // OneFunc — функция может принимать значение любого типа, которое затем возможно обработать внутри ее тела функции func OneFunc(arg interface{}) {
// …
} 2. Чтобы создавать универсальные типы данных. Универсальные типы данных могут хранить значения разных типов. Для примера, создадим пустой срез(слайс) типа []interface{}: package main import "fmt" func main() { var slice []interface{} slice = append(slice, 8, "Привет!", 10.0, true) fmt.Printf("Адрес