は私が間違っているのを理解することはできません実装することを宣言しますしかし、私はrun
にT
がHasName
形質を実装していることを説明したいと思います。何self
パラメータがありません - あなたは関連する機能、ない方法を定義しているのでどのようにメソッドの引数は、特定の特性
pub trait HasName {
fn name(&self) -> String;
}
は私が間違っているのを理解することはできません実装することを宣言しますしかし、私はrun
にT
がHasName
形質を実装していることを説明したいと思います。何self
パラメータがありません - あなたは関連する機能、ない方法を定義しているのでどのようにメソッドの引数は、特定の特性
pub trait HasName {
fn name(&self) -> String;
}
あなたname
方法はself
パラメータを必要とします。
はどちらかあなたは
fn run(arg: T) {
println!("{}", T::name());
}
をしたいか、あなたはどちらが異なるものを表す有効な概念である
trait HasName {
fn name(&self) -> String;
}
たい。たとえば、関連する関数はコンストラクタにとって便利です。 Default
traitはこれの良い例です。
:
ありがとう、これは単純化された例で動作します。 私は現実に拍手をかけようとしますが、この方法が失敗すると更新します。 –