Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIfAn 31 of 280 menu
◀ ▶

Пустой интерфейс в Go

Пустой интерфейс не требует ни одного метода, поэтому в него входит любое значение. В объявлении после слова interface стоят пустые фигурные скобки без списка методов. Такой тип принимает и числа, и строки, и структуры, и указатели.

В стандартной библиотеке для него есть короткое имя any: это то же самое, что пустой интерфейс, только запись короче. Старую форму interface{} в новых примерах обычно заменяют на any.

Положим в одну переменную разные значения:

package main import "fmt" func main() { var box any box = 10 fmt.Println(box) box = "hi" fmt.Println(box) box = true fmt.Println(box) }

В box по очереди оказываются int, string и bool. Каждый раз внутри меняются и тип, и содержимое. Снаружи тип переменной остается any, поэтому конкретные методы напрямую не видны, пока тип не проверят отдельно.

Создайте any, запишите в него 42, затем "go", и выведите переменную после каждого присваивания.

Дано значение:

package main type Point struct { X int Y int }

Запишите Point с координатами 1 и 2 в переменную any и выведите ее.

Скажите, сколько методов должно быть у типа, чтобы его положили в any.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить