我想要实例化一个变量,然后将其传递给一个需要 T: Write
的函数。定义如下:
let outputFile = match matches.opt_str("o") {
Some(fileName) => File::create(fileName).expect("could not open output file"),
None => std::io::stdout()
};
目前,编译器会抱怨在arms中类型不匹配(File
vs. Stdout
)。我希望的是将outputFile
声明为我可以从中调用任何Write
trait方法的对象,仅此而已。
Rust是否允许我这样做,还是我必须将整个match
表达式作为参数传递到该函数中?