Запитання з тегом «generics»

Генеріки - це форма параметричного поліморфізму, що зустрічається в різних мовах, включаючи мови NET, Java, Swift та Rust.



4
Що означає нахил у кутових дужках при створенні загального класу Java?
Я читав кілька прикладів JMockit і знайшов цей код: final List<OrderItem> actualItems = new ArrayList<~>(); Що означає тильда в загальному ідентифікаторі? Я знаю, що це одинарний бітовий НЕ оператор, але я не бачу тут операнда. Також я спробував скласти його і отримав помилку. Я просто щось пропускаю?

8
Java-дженерики T vs Object
Мені було цікаво, в чому різниця між наступними двома заявами методу: public Object doSomething(Object obj) {....} public <T> T doSomething(T t) {....} Чи є щось, що ви можете / зробили б з одним, а не з іншим? Я не міг знайти це питання в іншому місці на цьому веб-сайті.
127 java  generics 

5
Чому в Go немає жодних дженериків?
Відмова: Зараз я грав із Go тільки один день, тому є хороший шанс, що я багато чого пропустив. Хтось знає, чому немає реальної підтримки для генеричних / шаблонів / whatsInAName в Go? Отже, є загальне map, але це постачається компілятором, тоді як програміст Go не може написати власну реалізацію. Якщо …

3
Протокол не відповідає собі?
Чому цей код Swift не компілюється? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] { return [] } } let result : [S] = arr.test() Компілятор каже: "Тип Pне відповідає протоколу P" …

5
Загальна умова іменування параметрів типу для Java (з кількома символами)?
У деяких інтерфейсах я писав, що я хотів би назвати параметри загального типу з більш ніж одним символом, щоб зробити код більш читабельним. Щось на зразок.... Map<Key,Value> Замість цього ... Map<K,V> Але якщо мова йде про методи, параметри типу виглядають як java-класи, що також заплутано. public void put(Key key, Value …

6
Як я реалізую IEnumerable <T>
Я знаю, як реалізувати загальний IEnumerable, як це: using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = "World", Bar = …
124 c#  .net  generics 

2
Що означає "Протокол ... може використовуватися лише як загальне обмеження, оскільки він має власні або асоційовані вимоги до типу"?
Я намагаюся створити Словник (власне HashSet ), введений на користувацькому протоколі в Swift, але він дає мені помилку в заголовку: Протокол 'myProtocol' може використовуватися лише як загальне обмеження, оскільки він має вимоги Self або асоційований тип і я не можу робити ні голови, ні хвостів. protocol Observing: Hashable { } …

8
Коли користуватися загальними методами та коли використовувати загальну картку?
Я читаю про загальні методи з OracleDocGenericMethod . Я досить розгублений у порівнянні, коли йдеться про те, коли використовувати wild-card і коли використовувати загальні методи. Цитування з документа. interface Collection&lt;E&gt; { public boolean containsAll(Collection&lt;?&gt; c); public boolean addAll(Collection&lt;? extends E&gt; c); } Тут ми могли використати загальні методи: interface Collection&lt;E&gt; …
122 java  generics  wildcard 

5
Використання поля об’єкта як загального ключа словника
Якщо я хочу використовувати об'єкти як ключі для a Dictionary, які методи мені знадобляться, щоб змусити їх порівнювати певним чином? Скажіть, у мене клас aa, який має властивості: class Foo { public string Name { get; set; } public int FooID { get; set; } // elided } І я …

11
Чому я не можу використовувати значення float як параметр шаблону?
Коли я намагаюся використовувати floatяк параметр шаблону, компілятор кричить за цим кодом, при цьому intпрацює добре. Це тому, що я не можу використовувати floatяк параметр шаблону? #include&lt;iostream&gt; using namespace std; template &lt;class T, T defaultValue&gt; class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() …

6
Повернення "IList" vs "ICollection" vs "Collection"
Мене бентежить, який тип колекції я повинен повернути зі своїх методів та властивостей публічного API. Колекції , які я маю на увазі , є IList, ICollectionі Collection. Чи повернення одного з цих типів завжди віддається перевагу перед іншими, чи це залежить від конкретної ситуації?
119 c#  .net  generics  collections 

4
Наслідуйте загальний базовий клас, застосуйте обмеження та реалізуйте інтерфейс у C #
Це синтаксичне запитання. У мене є загальний клас, який успадковується від загального базового класу і застосовує обмеження до одного з параметрів типу. Я також хочу, щоб похідний клас реалізував інтерфейс. За все життя я не можу зрозуміти правильний синтаксис. Ось що я маю: DerivedFoo&lt;T1,T2&gt; : ParentFoo&lt;T1, T2&gt; where T2 : …

6
Що я повертаю, якщо тип повернення методу недійсний? (Недійсні!)
Завдяки використанню Generics у Java мені довелося реалізувати функцію, що має Voidтип повернення: public Void doSomething() { //... } і компілятор вимагає повернути щось . Поки що я просто повертаюся null, але мені цікаво, чи це хороша практика кодування ... Я запитую про V ‌oid, а не v ‌oid. Клас …
115 java  generics  void 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.