Есть ли эквивалент в swift для пустого интерфейса Go? - PullRequest
0 голосов
/ 17 апреля 2020

Есть ли в Swift эквивалент для передачи в качестве аргумента пустого интерфейса {}, как в Go?

Ответы [ 3 ]

3 голосов
/ 17 апреля 2020

Я не очень знаком с Go, но я думаю, что эквивалент Swift будет аргументом типа Any или AnyObject. С таким аргументом вы ничего не сможете сделать, кроме как попытаться привести его к более конкретному типу c.

2 голосов
/ 17 апреля 2020

Go интерфейсы и протоколы Swift совершенно разные:

Ближайший аналог interface{} в Swift - Any. Это встроенный протокол, которому соответствуют все типы. Он получает специальную обработку, определяется компилятором и имеет жестко запрограммированный лог c, чтобы все остальные типы соответствовали ему. Вы не увидите явно объявленных protocol Any {} или struct S: Any {}. AnyObject похоже, а также получает специальное лечение. Но никакие другие протоколы Swift не делают. Их соответствие должно быть явным.

0 голосов
/ 17 апреля 2020

Если я не ошибаюсь, эквивалент Swift будет:

protocol EmptyProtocol {
}

В быстрых интерфейсах называются протоколы, не спрашивайте меня: D

Вы пытаетесь удалить тип или что-то в этом роде? ? Просто любопытно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...