Traits Genéricos
Traits também podem ser genéricos, assim como tipos e funçÔes. Os parùmetros de um trait recebem tipos concretos quando ele é usado.
Speaker Notes
-
O trait
From
serå abordado mais tarde no curso, mas sua definição na documentaçãostd
Ă© simples. -
As implementaçÔes do trait nĂŁo precisam cobrir todos os possĂveis parĂąmetros de tipo. Aqui,
Foo::from("hello")
não seria compilado porque não hå implementaçãoFrom<&str>
paraFoo
. -
Os traits genĂ©ricos recebem tipos como "entrada", enquanto os tipos associados sĂŁo uma espĂ©cie de tipo de "saĂda". Um trait pode ter vĂĄrias implementaçÔes para diferentes tipos de entrada.
-
Na verdade, o Rust exige que no mĂĄximo uma implementação de um trait corresponda a qualquer tipo T. Ao contrĂĄrio de algumas outras linguagens, o Rust nĂŁo tem uma heurĂstica para escolher a correspondĂȘncia "mais especĂfica". HĂĄ trabalho em adicionar esse suporte, chamado especialização.