Вопросы с тегом «traits»

В компьютерном программировании черта - это набор методов, используемых в качестве «простой концептуальной модели для структурирования объектно-ориентированных программ».

11
В чем разница между типами self и подклассами черт?
Тип личности для черты A: trait B trait A { this: B => } говорит, что « Aнельзя смешивать в конкретный класс, который также не расширяется B» . С другой стороны, следующее: trait B trait A extends B говорит, что "любой (конкретный или абстрактный) класс, смешивающийся в, Aбудет также смешиваться …
387 scala  traits  self-type 


4
Как переопределить функцию trait и вызвать ее из переопределенной функции?
Сценарий: trait A { function calc($v) { return $v+1; } } class MyClass { use A; function calc($v) { $v++; return A::calc($v); } } print (new MyClass())->calc(2); // should print 4 Этот код не работает, и я не могу найти способ вызвать функцию черты, как она была унаследована. Я пыталась …
370 php  traits 

13
Черты против интерфейсов
В последнее время я пытался изучать PHP и обнаружил, что зацикливаюсь на особенностях. Я понимаю концепцию горизонтального повторного использования кода и не хочу обязательно наследовать от абстрактного класса. Что я не понимаю, так это то, в чем заключается принципиальное отличие использования черт от интерфейсов? Я пытался найти приличный пост в …
346 php  interface  traits 

5
Что такое запечатанная черта?
Запечатанные классы описаны в «Программирование в Scala», но запечатанные черты - нет. Где я могу найти больше информации о запечатанном признаке? Я хотел бы знать, является ли запечатанная черта такой же, как у запечатанного класса? Или, если нет, в чем различия? Когда стоит использовать запечатанную черту (а когда нет)?
332 scala  sealed  traits 



5
Черты в PHP - какие-либо реальные примеры / лучшие практики? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
148 php  traits 

4
Можно ли выяснить тип параметра и тип возврата лямбда?
Учитывая лямбду, возможно ли выяснить ее тип параметра и тип возвращаемого значения? Если да, то как? В принципе, я хочу, lambda_traitsкоторый может быть использован следующими способами: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Мотивация заключается в …

1
Методы по умолчанию в Java 8 как признаки: безопасно?
Безопасно ли использовать методы по умолчанию в качестве плохой версии трейтов в Java 8? Некоторые утверждают, что это может расстроить панд, если вы используете их только ради этого, потому что это круто, но это не мое намерение. Также часто напоминают, что методы по умолчанию были введены для поддержки эволюции API …

3
Когда использовать val или def в трейтах Scala?
Я просматривал эффективные слайды scala, и на слайде 10 упоминается, что никогда не следует использовать valв a traitдля абстрактных элементов и использовать defвместо этого. На слайде не упоминается подробно, почему использование аннотации valв a traitявляется анти-шаблоном. Я был бы признателен, если бы кто-нибудь мог объяснить лучшие практики использования val vs …

4
Почему PHP Trait не может реализовывать интерфейсы?
Мне интересно, почему PHP Trait (PHP 5.4) не может реализовывать интерфейсы. Обновление от user1460043 answer => ... не может требовать класс, который использует его для реализации определенного интерфейса Я понимаю, что это могло быть очевидным, потому что люди могли подумать, что если a Class Aиспользует a, Trait Tкоторый реализует a …
83 php  oop  interface  traits 


2
Почему `std :: mem :: drop` не совпадает с замыканием | _ | () в границах черт с более высоким рейтингом?
Реализация std::mem::dropзадокументирована следующим образом: pub fn drop<T>(_x: T) { } Таким образом, я ожидаю, что укупорка |_| ()(в просторечии известная как унитаз ) будет потенциальной заменой 1: 1 dropв обоих направлениях. Тем не менее, приведенный ниже код показывает, что dropон не совместим с признаком более высокого ранга, связанным с параметром …

4
Как вернуть связанный тип из признака, связанного с признаком более высокого ранга?
У меня есть черта, которая имеет функцию для десериализации ассоциированного типа. Однако этот связанный тип должен иметь время жизни, которое решает вызывающая сторона, поэтому у меня есть отдельная черта, для которой я использую черту с более высоким рейтингом, чтобы ее можно было десериализовать для любого времени жизни. Мне нужно использовать …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.