Pytania otagowane jako traits

W programowaniu komputerowym cechą jest zbiór metod używanych jako „prosty model konceptualny do tworzenia struktury programów zorientowanych obiektowo”



4
Jak zastąpić funkcję cechy i wywołać ją z funkcji zastąpionej?
Scenariusz: 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 Ten kod nie działa i nie mogę znaleźć sposobu na wywołanie funkcji cechy, tak jak została odziedziczona. Próbowałem nazywając …
369 php  traits 

13
Cechy a interfejsy
Ostatnio próbuję uczyć się na PHP i odkrywałem, że jestem uzależniony od cech. Rozumiem koncepcję ponownego wykorzystania kodu horyzontalnego i nie chcę dziedziczyć po klasie abstrakcyjnej. Nie rozumiem tylko: jaka jest zasadnicza różnica między używaniem cech a interfejsami? Próbowałem znaleźć porządny post na blogu lub artykuł wyjaśniający, kiedy użyć jednego …
344 php  interface  traits 

5
Co to jest zapieczętowana cecha?
Zapieczętowane klasy są opisane w „Programowaniu w Scali”, ale zapieczętowane cechy nie są. Gdzie mogę znaleźć więcej informacji na temat zapieczętowanej cechy? Chciałbym wiedzieć, czy zapieczętowana cecha jest taka sama jak zapieczętowana klasa? A jeśli nie, jakie są różnice? Kiedy warto zastosować zapieczętowaną cechę (a kiedy nie)?
332 scala  sealed  traits 



5
Cechy w PHP - jakieś przykłady z życia wzięte / najlepsze praktyki? [Zamknięte]
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i prawdopodobnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …
148 php  traits 

4
Czy można określić typ parametru i zwracany typ lambdy?
Czy biorąc pod uwagę lambdę, można określić typ jej parametru i typ zwracany? Jeśli tak, w jaki sposób? Zasadniczo chcę, aby lambda_traitsmożna było używać na następujące sposoby: 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 Motywacją jest …

1
Domyślne metody Java 8 jako cechy: bezpieczne?
Czy bezpieczną praktyką jest używanie metod domyślnych jako wersji cech dla ubogich w Javie 8? Niektórzy twierdzą, że pandy mogą być smutne, jeśli używasz ich tylko ze względu na to, że są fajne, ale nie taki jest mój zamiar. Często przypomina się również, że domyślne metody zostały wprowadzone w celu …

3
Kiedy używać val lub def w cechach Scala?
Przeglądałem efektywne slajdy scala i na slajdzie 10 wspomina się, że nigdy nie używaj valich traitjako abstrakcyjnych członków i używaj defzamiast tego. Slajd nie wspomina szczegółowo, dlaczego użycie abstrakcji valw a traitjest anty-wzorcem. Byłbym wdzięczny, gdyby ktoś mógł wyjaśnić najlepsze praktyki dotyczące używania wartości val vs def w cechach metod …

4
Dlaczego PHP Trait nie może implementować interfejsów?
Zastanawiam się, dlaczego PHP Trait (PHP 5.4) nie może implementować interfejsów. Aktualizacja z answer => ... użytkownika1460043 nie może wymagać klasy, która używa jej do implementacji określonego interfejsu Rozumiem, że może to być oczywiste, ponieważ ludzie mogą pomyśleć, że jeśli a Class Aużywa a, Trait Tktóre implementuje an interface I, …
83 php  oop  interface  traits 


2
Dlaczego `std :: mem :: drop` nie jest dokładnie taki sam jak zamknięcie | _ | () w wyższych zakresach cech?
Realizacja std::mem::dropjest udokumentowana następująco: pub fn drop<T>(_x: T) { } Jako taki, oczekiwałbym, że zamknięcie |_| ()(potocznie zwane zamknięciem toalety ) będzie potencjalnym zamiennikiem 1: 1 dropw obu kierunkach. Jednak poniższy kod pokazuje, że dropnie jest zgodny z cechą wyższego rzędu związaną z parametrem funkcji, podczas gdy zamknięcie toalety jest. …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.