Rustのドキュメントや書籍で頻発する、「コンパイル時にサイズが分からない」という単語の意味がよくわかりません。
例えば、以下のコードです。
Rust
1fn main() { 2 let byte_array = [b'h', b'e', b'l', b'l', b'o']; 3} 4 5fn print(s: [u8]) { 6 println!("{:?}", s); 7} 8
Error
1error[E0277]: the size for values of type `[u8]` cannot be known at compilation time 2 --> src/main.rs:5:10 3 | 45 | fn print(s: [u8]) { 5 | ^ doesn't have a size known at compile-time 6 | 7 = help: the trait `Sized` is not implemented for `[u8]` 8 = help: unsized locals are gated as an unstable feature 9help: function arguments must have a statically known size, borrowed types always have a known size
エラーの通り、「コンパイル時にサイズが分からない」とのことですが。。
例えば、今回のコードでは、要素数が5つのバイナリの配列をハードコードしてるわけですが、これはコンパイル時に「要素数5の配列だ」と、コンパイラが理解できない何か理由があるのでしょうか。それとも、私が根本的にRustのコンパイラの動きを理解できていないのでしょうか。
どなたかご教授ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。