Il seguente codice:Come usare un tratto più volte in una classe?
trait T {
function foo() {}
}
class C {
use T { T::foo as bar; }
use T { T::foo as baz; }
}
produce il seguente errore:
Trait method bar has not been applied, because there are collisions with other trait methods on C
E 'possibile utilizzare un tratto due volte in una classe?
che è stato! Grazie. – Benjamin
Posso vedere da dove viene la domanda, ma con questa soluzione hai solo 2 funzioni con esattamente la stessa funzionalità, che funzionano esattamente con gli stessi interni. Perché vorresti 2 funzioni che facciano esattamente la stessa cosa? Sarebbe bello se la funzione "bar" usasse attributi di classe diversi dalla funzione "baz" (in modo che bar e baz facciano lo stesso, ma due volte), ma non è così? – Veda
Penso che questa fosse principalmente una domanda teorica, quindi la risposta molto semplice. –