Вопросы по теме 'traits'
В чем разница между самотипами и подклассами черт?
Самотип для признака A :
trait B
trait A { this: B => }
говорит, что " A нельзя смешивать с конкретным классом, который также не расширяет B " .
С другой стороны, следующее:
trait B
trait A extends B
говорит, что «любое...
68619 просмотров
schedule
14.10.2022
Перестроение лениво созданного атрибута при изменении базового атрибута в Moose
У меня есть класс Moose с атрибутом lazy_build . Значение этого атрибута является функцией другого (неленивого) атрибута.
Предположим, кто-то создает экземпляр класса со значением 42 для требуемого атрибута. Затем они запрашивают ленивый...
807 просмотров
schedule
22.05.2023
Свойства параметра шаблона C++ boost
Кажется, я видел макрос в boost, который восстанавливает параметры шаблона шаблона, например:
template<class>
struct parameters;
#define parameters(T) template<class A> \
struct parameters<T<A> > { typedef A...
693 просмотров
schedule
04.09.2022
Разрешено ли использование конструктора с классами case?
У меня есть класс case (назовем его Stuff ), для которого я хочу иметь возможность создавать анонимные подклассы во время выполнения, расширяя признак (назовем его Marker ). Вот фрагмент сеанса REPL, иллюстрирующий то, что я пытаюсь сделать:...
221 просмотров
schedule
29.11.2022
Проблема при определении трейта ведения журнала в scala
Похоже, что общий шаблон ведения журнала в scala заключается в использовании трейта ведения журнала, который смешан с конкретным классом (см. Проекты с открытым исходным кодом, такие как Liftweb, akka, ...).
Что-то такое:
trait Logging {
val...
2703 просмотров
schedule
23.02.2023
Почему трейты Scala на самом деле не трейты?
Кто-то недавно сказал мне, что трейты Scala не являются "настоящими" трейтами, а на самом деле это просто примеси. К сожалению, у меня не было возможности спросить его, почему. Кто-нибудь знает, что он имел в виду?
Правка: В качестве...
1778 просмотров
schedule
19.02.2023
В чем причина этой головной боли при разрешении перегрузок?
У меня есть программа, в которой много вложенных операторов if/switch, которые повторяются в нескольких местах. Я попытался извлечь это и поместить переключатели в класс метода шаблона, а затем разрешить клиентам перегружать ветки переключателей,...
432 просмотров
schedule
12.09.2022
Как объявить черты как принимающие неявные параметры конструктора?
Я разрабатываю иерархию классов, которая состоит из базового класса с несколькими характеристиками. Базовый класс предоставляет реализации по умолчанию для нескольких методов, а черты характера выборочно переопределяют определенные методы через...
26308 просмотров
schedule
18.05.2022
Создание признака синглтона с помощью PHP 5.4
Недавно мы обсуждали возможность создания trait Singleton PHP Traits , и мы поиграли с его возможной реализацией, но столкнулись с проблемами при ее создании.
Это академическое упражнение. Я знаю, что Singletons have very little - if not...
10167 просмотров
schedule
18.02.2022
Как разыменовать тип в С++ 03?
Как получить «разыменованный тип» другого типа в С++ 03? Обратите внимание, что это может быть другой разыменовываемый тип, например std::vector<int>::iterator .
например если у меня есть
template<typename T>
struct MyPointer
{...
1838 просмотров
schedule
14.07.2023
Scala: смешайте черты характера и класс case в сопоставлении с образцом
Я хочу сопоставить несколько классов кейсов. Если я их не знаю, я хочу сопоставить по указанному признаку, который классы должны расширять. Это похоже
trait Event //root trait
trait Status extends Event //special trait
trait UIEvent extends...
13702 просмотров
schedule
18.10.2022
Возможен ли трейт-класс is_functor C++?
Как я могу вывести статически, если аргумент является объектом функции C++ (функтор)?
template <typename F>
void test(F f) {}
Я пробовал is_function<F>::value , но это не работает. Также кажется, что черты is_functor нет, так...
2984 просмотров
schedule
01.03.2022
Можно ли изменить контекст типажа на тип, объявленный в качестве параметра типа?
То, что я хотел бы сделать, похоже на это:
class Foo( val bar: String = "Hello!" ) extends MyTrait[ Foo ]
trait MyTrait[ T ] { self : T =>
T.bar
}
Замена self : T на self : Foo, очевидно, работает, но MyTrait может расширять другой...
110 просмотров
schedule
19.11.2022
Может ли аргумент по умолчанию параметра шаблона быть специализированным?
В C++, если у меня есть параметр шаблона, как я могу четко специализировать аргумент по умолчанию? Например, рассмотрим следующее:
template <class Key, class Value = int > class Association;
Что, если я хочу, чтобы вместо Value по...
179 просмотров
schedule
09.07.2023
Абстрактные поля в типажах (Scala) — порядок построения
Итак, я читаю книгу Scala для нетерпеливых и один из ее примеров. Использует трейт Logger , который, по сути, выводит String в некоторый поток. В примере у него есть трейт ConsoleLogger (который расширяет Logger ), который выводит...
619 просмотров
schedule
09.04.2022
PHP — Трейты как помощники
Есть ли какие-либо противоречия в использовании трейтов для внедрения вспомогательных методов, подобных этому?
class Foo
{
use Helper\Array;
function isFooValid(array $foo)
{
return...
4660 просмотров
schedule
14.02.2023
Scala — Абстрактные функции в трейтах
trait Rectangular{
def topLeft:Point
def bottomRight:Point
def left=topLeft.x
def right=bottomRight.x
def width=right-left
//andmanymoregeometricmethods...
}
class Rectangle(val topLeft:Point,val bottomRight:Point)
extends Rectangular{...
228 просмотров
schedule
26.05.2022
Как перегрузить конструктор класса внутри трейтов в PHP ›= 5.4
В PHP 5 я могу перегружать конструкторы (и любые другие методы). Но если я получу такой код:
class Base {
public function __construct($a, $b) {
echo $a+$b;
}
public function sayHello() {
echo 'Hello ';
}
}...
55046 просмотров
schedule
19.10.2022
Как неявно работает в этом примере из Scala in Depth
В книге Scala in Depth. Вот этот пример неявной области видимости:
scala> object Foo {
| trait Bar
| implicit def newBar = new Bar {
| override def toString = "Implicit Bar"
| }
| }
defined module Foo
scala>...
204 просмотров
schedule
09.03.2023
Scala, Расширить объект с помощью универсального признака
Я использую Scala и хочу расширить объект (одноэлементный) с помощью трейта, который предоставляет структуру данных и некоторые методы, например:
trait Tray[T] {
val tray = ListBuffer.empty[T]
def add[T] (t: T) = tray += t
def get[T]:...
17970 просмотров
schedule
25.03.2022