In der Computerprogrammierung ist ein Merkmal eine Sammlung von Methoden, die als "einfaches konzeptionelles Modell zur Strukturierung objektorientierter Programme" verwendet werden.
Ein Selbsttyp für ein Merkmal A: trait B trait A { this: B => } sagt, dass " Anicht in eine konkrete Klasse gemischt werden kann, die sich nicht auch erstreckt B" . Auf der anderen Seite die folgenden: trait B trait A extends B sagt, dass "jede (konkrete oder …
Was ist der Vorteil der Verwendung einer abstrakten Klasse anstelle eines Merkmals (abgesehen von der Leistung)? Es scheint, dass abstrakte Klassen in den meisten Fällen durch Merkmale ersetzt werden können.
Szenario: 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 Dieser Code funktioniert nicht und ich kann keine Möglichkeit finden, eine Merkmalsfunktion aufzurufen, wie sie geerbt wurde. Ich habe …
Ich habe in letzter Zeit versucht, mich mit PHP zu beschäftigen, und bin dabei, mich auf Eigenschaften einzulassen. Ich verstehe das Konzept der Wiederverwendung von horizontalem Code und möchte nicht unbedingt von einer abstrakten Klasse erben. Was ich nicht verstehe ist: Was ist der entscheidende Unterschied zwischen der Verwendung von …
Versiegelte Klassen werden in 'Programmieren in Scala' beschrieben, versiegelte Merkmale jedoch nicht. Wo finde ich weitere Informationen zu einem versiegelten Merkmal? Ich würde gerne wissen, ob ein versiegeltes Merkmal mit einer versiegelten Klasse identisch ist. Oder wenn nicht, was sind die Unterschiede? Wann ist es eine gute Idee, ein versiegeltes …
Merkmale in Rust scheinen zumindest oberflächlich Typklassen in Haskell ähnlich zu sein , aber ich habe Leute schreiben sehen, dass es einige Unterschiede zwischen ihnen gibt. Ich habe mich genau gefragt, was diese Unterschiede sind.
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
Ist es bei einem Lambda möglich, den Parametertyp und den Rückgabetyp herauszufinden? Wenn ja, wie? Grundsätzlich möchte ich, lambda_traitswelche auf folgende Arten verwendet werden kann: 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 Die Motivation dahinter ist, …
Ist es eine sichere Praxis, Standardmethoden als Version von Merkmalen für Arme in Java 8 zu verwenden? Einige behaupten, es könnte Pandas traurig machen, wenn man sie nur deswegen benutzt, weil es cool ist, aber das ist nicht meine Absicht. Es wird auch oft daran erinnert, dass Standardmethoden eingeführt wurden, …
Ich habe die effektiven Scala-Folien durchgesehen und auf Folie 10 wird erwähnt, dass sie niemals valin einem traitfür abstrakte Mitglieder verwendet werden sollen und defstattdessen verwendet werden sollen. In der Folie wird nicht im Detail erwähnt, warum die Verwendung von Abstract valin a traitein Anti-Pattern ist. Ich würde es begrüßen, …
Ich frage mich, warum PHP Trait (PHP 5.4) keine Schnittstellen implementieren kann. Für ein Update von der Antwort von user1460043 => ... kann keine Klasse erforderlich sein, die es zum Implementieren einer bestimmten Schnittstelle verwendet Ich verstehe, dass es offensichtlich sein könnte, weil die Leute denken könnten, wenn a Class …
Ich habe eine Eigenschaft Foo pub trait Foo { fn do_something(&self) -> f64; } und eine Struktur, die auf dieses Merkmal verweist pub struct Bar { foo: Foo, } Beim Versuch zu kompilieren bekomme ich error: reference to trait `Foo` where a type is expected; try `Box<Foo>` or `&Foo` Ändern …
Die Implementierung von std::mem::dropist wie folgt dokumentiert: pub fn drop<T>(_x: T) { } Als solches würde ich erwarten, dass der Verschluss |_| ()(umgangssprachlich als Toilettenverschluss bezeichnet ) ein potenzieller 1: 1-Ersatz für dropbeide Richtungen ist. Der folgende Code zeigt jedoch, dass er dropnicht mit einem höherrangigen Merkmal kompatibel ist , …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.