En programmation informatique, un trait est un ensemble de méthodes, utilisé comme "modèle conceptuel simple pour structurer des programmes orientés objet"
Un auto-type pour un trait A: trait B trait A { this: B => } dit que " Ane peut pas être mélangé dans une classe concrète qui ne s'étend pas également B" . En revanche, les éléments suivants: trait B trait A extends B dit que "toute classe (concrète …
Quel est l'avantage d'utiliser une classe abstraite au lieu d'un trait (en dehors de la performance)? Il semble que les classes abstraites puissent être remplacées par des traits dans la plupart des cas.
Scénario: 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 Ce code ne fonctionne pas et je ne peux pas trouver un moyen d'appeler une fonction trait comme si …
J'ai essayé d'étudier PHP récemment, et je me retrouve accroché à des traits. Je comprends le concept de réutilisation horizontale du code et je ne veux pas nécessairement hériter d'une classe abstraite. Ce que je ne comprends pas, c'est: quelle est la différence cruciale entre l'utilisation de traits et d'interfaces? …
Les classes scellées sont décrites dans «Programmation en Scala», mais pas les traits scellés. Où puis-je trouver plus d'informations sur un trait scellé? J'aimerais savoir si un trait scellé est identique à une classe scellée? Ou, sinon, quelles sont les différences? Quand est-ce une bonne idée d'utiliser un trait scellé …
Les traits de Rust semblent au moins superficiellement similaires aux classes de types de Haskell, mais j'ai vu des gens écrire qu'il y avait des différences entre eux. Je me demandais exactement quelles étaient ces différences.
Dans l'état actuel des choses, cette question ne convient pas à notre format de questions-réponses. Nous nous attendons à ce que les réponses soient étayées par des faits, des références ou une expertise, mais cette question suscitera probablement un débat, des arguments, un sondage ou une discussion approfondie. Si vous …
Étant donné un lambda, est-il possible de déterminer son type de paramètre et son type de retour? Si oui, comment? Fondamentalement, je veux lambda_traitsce qui peut être utilisé des manières suivantes: 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 …
Est-ce une pratique sûre d'utiliser des méthodes par défaut comme une version pauvre des traits dans Java 8? Certains prétendent que cela peut rendre les pandas tristes si vous les utilisez juste pour le plaisir, parce que c'est cool, mais ce n'est pas mon intention. Il est également souvent rappelé …
J'étais en train de parcourir les diapositives scala efficaces et il est mentionné sur la diapositive 10 de ne jamais utiliser valdans un traitpour les membres abstraits et de l'utiliser à la defplace. La diapositive ne mentionne pas en détail pourquoi l'utilisation de résumé valdans a traitest un anti-motif. J'apprécierais …
L'implémentation de std::mem::dropest documentée comme suit: pub fn drop<T>(_x: T) { } En tant que tel, je m'attendrais à ce que la fermeture |_| ()(familièrement connue sous le nom de fermeture des toilettes ) soit un remplacement potentiel de 1: 1 dropdans les deux sens. Cependant, le code ci-dessous montre …
J'ai un trait qui a une fonction pour désérialiser un type associé. Cependant, ce type associé doit avoir une durée de vie que l'appelant décide, j'ai donc un trait distinct pour lequel j'utilise un trait de rang supérieur pour qu'il puisse être désérialisé pour toute durée de vie. J'ai besoin …
Je travaillais sur les exemples de code du chapitre Traits in Programming in Scala Edition1 https://www.artima.com/pins1ed/traits.html et est tombé sur un comportement étrange à cause de ma faute de frappe. Bien que la méthode de remplacement d'un trait sous l'extrait de code ne donne aucune erreur de compilation, bien que …
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.