小编eul*_*isk的帖子

为什么在这个特性中必须使用`Sized`绑定?

我有一个具有两个相关功能的特征:

trait WithConstructor: Sized {
    fn new_with_param(param: usize) -> Self;

    fn new() -> Self {
        Self::new_with_param(0)
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么第二个方法(new())的默认实现迫使我把Sized绑定放在类型上?我认为这是因为堆栈指针操作,但我不确定.

如果编译器需要知道大小的栈上分配内存,为什么下面的例子中不需要SizedT

struct SimpleStruct<T> {
    field: T,
}

fn main() {
    let s = SimpleStruct { field: 0u32 };
}
Run Code Online (Sandbox Code Playgroud)

traits rust

18
推荐指数
2
解决办法
7023
查看次数

标签 统计

rust ×1

traits ×1