【发布时间】:2023-03-03 20:23:02
【问题描述】:
如果我编写一个函数,它接受一个 [f32] 类型的参数(而不是 &[f32]),我会收到一个错误:
the trait bound `[f32]: std::marker::Sized` is not satisfied
文档说这是因为[f32] 没有编译时已知的大小。合理的限制。很公平。
但是,标准库中至少有一个具有这种类型的函数。这是我的称呼:
let b: Box<[f32]> = Box::new([1.0, 2.0, 3.0]);
为什么这在标准库中是允许的,而不是在我的代码中?相关的区别是什么? (the source 没有明显的魔法)。
【问题讨论】:
标签: rust dynamic-sizing