DevGang
Авторизоваться

Golang: Пустой интерфейс

В предыдущей статье мы узнали об интерфейсе в Go. В этой статье мы узнаем о пустых интерфейсах.

Тип интерфейса, который не имеет объявлений методов, называется пустым интерфейсом.

Синтаксис:

e_i имеет пустой интерфейс<br>
e_i имеет пустой интерфейс

Пустой интерфейс может содержать значения любого типа.

Пример: я могу сделать пустой интерфейс e_i для хранения строкового значения.

После объявления e_i имеет нулевой тип.

Когда мы инициализируем e_i строковым значением, оно изменяется на строковый тип.

Строковое значение в пустой интерфейс<br>
Строковое значение в пустой интерфейс

Несмотря на то, что e_i теперь является строковым типом, мы не можем использовать ни одну из строковых функций.

Тип interface{}<br>
Тип interface{}

Из-за пустого интерфейса типа e_i может содержать любой тип во время выполнения, поэтому это вызовет ошибку во время компиляции.

После утверждения типа нет ошибки<br>
После утверждения типа нет ошибки

Приведенный выше код можно переписать как:

Более чистый способ ввода assert<br>
Более чистый способ ввода assert

В приведенном выше коде мы утвердили тип, и если это строка, мы продолжаем нашу работу.

Снова мы можем изменить тип e_i

Пустой интерфейс может содержать значения любого типа<br>
Пустой интерфейс может содержать значения любого типа

Теперь e_i имеет тип int .

Но опять же, как наилучшая практика, прежде чем выполнять какие-либо операции с этим типом, убедитесь, что он утвержден, а затем продолжите.

* * *

Пустые интерфейсы используются кодом, обрабатывающим значения неизвестного типа.

#Golang
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Vladimir Shaitan - Видео блог о frontend разработке и не только

Посмотреть