2016-03-29 11 views
1

は私が間違っているのを理解することはできません実装することを宣言しますしかし、私はrunTHasName形質を実装していることを説明したいと思います。何selfパラメータがありません - あなたは関連する機能、ない方法を定義しているのでどのようにメソッドの引数は、特定の特性

pub trait HasName { 
    fn name(&self) -> String; 
} 

答えて

2

あなたname方法はselfパラメータを必要とします。

はどちらかあなたは

fn run(arg: T) { 
    println!("{}", T::name()); 
} 

をしたいか、あなたはどちらが異なるものを表す有効な概念である

trait HasName { 
    fn name(&self) -> String; 
} 

たい。たとえば、関連する関数はコンストラクタにとって便利です。 Default traitはこれの良い例です。

+0

ありがとう、これは単純化された例で動作します。 私は現実に拍手をかけようとしますが、この方法が失敗すると更新します。 –

関連する問題