Rust 为什么没有为'core::fmt::Show+;大小`?
我试图编译一些代码,但我得到了一个非常奇怪的错误: 对于类型Rust 为什么没有为'core::fmt::Show+;大小`?,rust,Rust,我试图编译一些代码,但我得到了一个非常奇怪的错误: 对于类型core::fmt::Show+Sized 以及守则: use std::fmt::Show; fn main() { println!("{}", return_showed()); // Error occurs here } fn return_showed() -> Box<Show+Sized+'static> { box "test" as Box<Show+Sized> }
core::fmt::Show+Sized
以及守则:
use std::fmt::Show;
fn main() {
println!("{}", return_showed()); // Error occurs here
}
fn return_showed() -> Box<Show+Sized+'static> {
box "test" as Box<Show+Sized>
}
使用std::fmt::Show;
fn main(){
println!(“{}”,return_show());//此处发生错误
}
fn返回显示()->框锈1.0
原始问题中发布的代码现在按预期编译
原创
如果您不需要调整大小,则可以使用以下方法:
fn show_boxed() -> Box<Show+'static> { // '
box "test"
}
fn main() {
println!("{}", &*show_boxed());
}
我同意这不太理想;这可能值得提出一个生锈问题。你能再补充一点为什么你需要+size
?@Shepmaster在我的实际代码中我需要一个size。这只是一个简化的测试用例。我仍然想知道是什么导致了这个错误。
fn return_showed() -> Box<Show+Sized+'static> { // '
box "test" as Box<Show+Sized>
}
fn main() {
let z: &Show = &*return_showed();
println!("{}", z);
}