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);
}