Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
1

*interface{} в interface{}

28.03.2014, 16:04. Показов 1157. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть интерфейс, который может принять как тип, так и указатель на тип. С первым вариантом все понятно, а вот в случае указателя на тип я ничего умнее приведения сначала к интерфейсу, а потом к нужному типу не придумал.
Go
1
2
3
4
5
asd(&myType)
 
func asd(zxc interface{}) {
    qwe := (*zxc.(*interface{})).(myType)
}
Как-то громоздко получается.

Добавлено через 1 минуту
Можно так:
Go
1
2
3
4
5
asd(&myType)
 
func asd(zxc *interface{}) {
    qwe := (*zxc).(myType)
}
Но в таком случае, можно передавать только указатели на интерфейс, что не устраивает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2014, 16:04
Ответы с готовыми решениями:

Конвертирование interface{} to object
Приветствую. Нужно передавать ссылку на объект типа, например `MyTypeObject`, в функцию...

Error: A non-optional actual argument must be present when invoking a procedure with an explicit interface
Неделю бьюсь с этой ошибкой - то появляется в разных местах, то - не уловлю ситуацию - исчезает. ...

interface
Помогите кто чем может! Пишу приложение использующее модули расширения. Программный интерфейс...

AS-Interface
Доброго времени суток Всем. Кто подскажет можно ли подключить к ардуино сеть AS-Interface и...

5
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
28.03.2014, 17:09 2
Зачем это вообще нужно? Что именно не так с передачей через указатель?
0
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
28.03.2014, 19:13  [ТС] 3
С ней что-то не так? Нужно принять данные и обработать их. Тип пришедших данных становится известен в рантайме.

Добавлено через 5 минут
func asd(zxc interface{}) - принимает указатель на любой тип
func asd(zxc *interface{})- принимает только указатель на interface{}
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
29.03.2014, 07:55 4
Я так и не понял в чем проблема, может это поможет.

Добавлено через 47 секунд
Собственно зачем тебе разыменовывать указатель?
1
2 / 2 / 0
Регистрация: 28.03.2014
Сообщений: 16
29.03.2014, 19:30  [ТС] 5
Проблем нет. Громоздкая конструкция, думал, может есть что-то более подходящее для этой задачи. Банальный пример по ссылке уж точно никак не поможет.
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
30.03.2014, 09:48 6
Цитата Сообщение от Oleg_aa_tor Посмотреть сообщение
Проблем нет. Громоздкая конструкция
Так а зачем ты ее пишешь? А это:
Цитата Сообщение от Oleg_aa_tor Посмотреть сообщение
(*zxc.(*interface{})).(myType)
вообще не будет работать.

В общем, без реального примера, я затрудняюсь что-либо подсказать.

Добавлено через 23 минуты
Может так?
1
30.03.2014, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2014, 09:48
Помогаю со студенческими работами здесь

Interface
Подскажи те плиз чайнику,что надо сделать. У меня есть интерфейс который выглядит так public...

InterFace not supported
Здравствуйте, подскажите ошибка где procedure TForm1.Button1Click(Sender: TObject); var...

Sigmatek interface
Всем доброго времени суток!!!!!))))Есть станок листогиб SCHECHTL MAX 310/CNC! Он изначально был с...

Создать interface
Добрый день помогите решить задачу : Создать interface Зарплата, в котором предусмотреть метод...

abstract vs interface
Здравствуйте! Вопрос : чем отличается abstract class от interface в java?? Спасибо!

StackOverflowException в Interface
Здравствуйте! Есть два интерфейса в разных .cs namespace Deposit { interface IPerson...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru