Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust trait&x27中的冲突实现;工厂'; fn home(名称:String)->String{ 名称 } fn index()->字符串{ “你好”。to_string() } 特征工厂{} T的impl工厂,其中T:Fn()->String{ } T的impl工厂,其中T:Fn(字符串)->String{ } 结构用户{} impl用户{ fn get(工厂:F)其中F:工厂{ } } fn main(){ User::get(索引); 用户::get(home); }_Rust_Traits - Fatal编程技术网

Rust trait&x27中的冲突实现;工厂'; fn home(名称:String)->String{ 名称 } fn index()->字符串{ “你好”。to_string() } 特征工厂{} T的impl工厂,其中T:Fn()->String{ } T的impl工厂,其中T:Fn(字符串)->String{ } 结构用户{} impl用户{ fn get(工厂:F)其中F:工厂{ } } fn main(){ User::get(索引); 用户::get(home); }

Rust trait&x27中的冲突实现;工厂'; fn home(名称:String)->String{ 名称 } fn index()->字符串{ “你好”。to_string() } 特征工厂{} T的impl工厂,其中T:Fn()->String{ } T的impl工厂,其中T:Fn(字符串)->String{ } 结构用户{} impl用户{ fn get(工厂:F)其中F:工厂{ } } fn main(){ User::get(索引); 用户::get(home); },rust,traits,Rust,Traits,嘿,伙计们,我遇到了这个问题,rust编译器抱怨特性实现冲突。当我编写这段代码“impl Factory for T where T:Fn(String)->String”时,就会出现这个问题。请帮忙。任何解决此问题的建议都会有所帮助。这是否回答了您的问题?你到底想做什么?从技术上讲,index和home是函数指针,而不是闭包。不能这样做的原因是,即使闭包可以是Fn(String)->String。从技术上讲,这并不妨碍它也实现Fn()->String。这与可变闭包有关。我尝试使用宏规则!来解决

嘿,伙计们,我遇到了这个问题,rust编译器抱怨特性实现冲突。当我编写这段代码“impl Factory for T where T:Fn(String)->String”时,就会出现这个问题。请帮忙。任何解决此问题的建议都会有所帮助。

这是否回答了您的问题?你到底想做什么?从技术上讲,
index
home
是函数指针,而不是闭包。不能这样做的原因是,即使闭包可以是
Fn(String)->String
。从技术上讲,这并不妨碍它也实现
Fn()->String
。这与可变闭包有关。我尝试使用宏规则!来解决我的问题。这对我来说确实有用。但我不明白为什么上面的代码不起作用。
fn home(name:String) -> String {
  name
}

fn index() -> String {
  "Hello".to_string()
}

trait Factory {}

impl<T> Factory for T where T: Fn() -> String {

}

impl<T> Factory for T where T: Fn(String) -> String {

}

struct User {}

impl User {
  fn get<F>(factory: F) where F: Factory {

  }
}
fn main() {
  User::get(index);
  User::get(home);
}