В ActionScript3, как говорится в заголовке, я пытаюсь передать два разных типа данных в одном векторе, создав для него интерфейс. Есть ли у кого-нибудь пример?Передача двух разных типов данных в векторе с использованием интерфейса
ответ
Если они не связаны друг с другом, вы можете вместо этого рассмотреть массив. Если вам нужны функции Vector, вы просто относитесь к нему как обычно: создайте вектор с интерфейсом как тип, а не самый общий базовый класс.
var v:Vector.<IFace> = new Vector.<IFace>();
... и, конечно, реализовать Iface на тех классов, которые вы хотите поместить в вектор
UPDATE - ОК, как продолжение ответа, вот фактический интерфейс ...
public interface IFace
{
function doSomethingAllImplementersCanDo() : Boolean;
}
... это будет в файле IFace.as. Класс, который реализует Iface может выглядеть следующим образом ...
public class MonsterTruck implements IFace
{
public function doSomethingAllImplementersCanDo() : Boolean
{
return true;
}
}
... и где-то в вашей программе ...
var v:Vector.<IFace> = new Vector.<IFace>();
var mt:MonsterTruck = new MonsterTruck();
v.push(mt);
var throughIFace:IFace = v.pop();
trace(throughIFace.doSomethingAllImplementersCanDo());
Я рекомендую проверить Adobe документацию здесь: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f41.html
привет joseph. Большое спасибо за ваш ответ! Я знаком с тем, как мне придется реализовать вектор с интерфейсом вместо базового класса. что я не знаю, как написать интерфейс. у вас есть пример? Спасибо! – wolga
@wolga, я не уверен, что вполне понимаю. Как, с одной стороны, вы знаете, как реализовать интерфейс, а с другой стороны, не знаете, как его написать? Как вы можете реализовать его, не зная, как его написать? – Joseph
Я обновил ответ на примере – Joseph
- 1. Boxplot двух векторов разных типов
- 2. Эффективность расчета с использованием разных типов данных?
- 3. PIVOT для двух полей разных типов данных
- 4. Сравнение двух ArrayList разных типов
- 5. Запрос двух разных типов сущностей с использованием PredicateBuilder
- 6. хранение двух разных объектов класса в векторе
- 7. Инициализация типов данных в std-векторе
- 8. Передача данных формы двух разных форм
- 9. Объединение двух переменных IQueryable разных типов вместе с использованием LINQ
- 10. Извлечь текст из двух разных типов символов с использованием regex
- 11. LINQ Пересечение двух разных типов
- 12. Помогите с получением двух разных типов данных из IEnumerable
- 13. Связывание двух списков разных типов с ListView
- 14. Передача значения с использованием намерений из двух разных видов деятельности
- 15. Сортировка двух массивов разных типов данных в Java
- 16. Передача типов в XMLSerializer с использованием переменной
- 17. bind_rows разных типов данных
- 18. Назначение двух разных типов данных массива в массив объектов
- 19. Равномерное поведение инициализации, различное для разных типов в векторе
- 20. Обработка двух разных типов значений в swift
- 21. Список двух разных типов в C#
- 22. Отображение двух разных типов данных из объекта в Listview
- 23. Сортировка двух массивов разных типов в один
- 24. Передача двух разных аргументов функции
- 25. Передача типов объектов/ссылочных данных между действиями с использованием интерфейса Parcelable
- 26. Java - замена двух разных типов многомерных массивов
- 27. Передача сложных типов через WCF с использованием известных типов
- 28. C++ Реализация интерфейса в двух разных классах
- 29. Типовой общий интерфейс XML Mapper с использованием разных типов данных?
- 30. Разница во времени выполнения C++ с использованием разных типов данных
насколько разные эти два объекта? – BotMaster
Если комментарий BotMaster представляет собой запрос о том, следует ли вообще помещать разрозненные объекты в вектор, я согласен с тем, что вы должны быть очень осторожны, скрывая различия в интерфейсе. Если вы не будете заблокированы, почему и как это будет сделано, так как, теперь, и впредь ваша программа может стать очень хрупкой. – Joseph