Rustの配列とSliceの関係

配列はメモリ上の連続した領域に保存されている。Sliceはこのメモリの塊を表現するビューらしい。だから配列だけでなくVecにも使えるらしい。配列はコンパイル時に長さが決定しているが、Sliceは実行時に長さが決まるので配列の場合はこのように長さを指定しているが

let array: [&str; 2] = ["a", "b"];

Sliceの場合は長さがいらないようだ。このコードはPrimitive Type sliceのcoercing an array to a sliceのコードを参考に鋳造した。

let array: &[&str] = &["a", "b"];

でどうやら前から使っていたgetとかってのはsliceの機能らしいですな。Primitive Type arrayによると

Arrays coerce to slices ([T]), so a slice method may be called on an array.

配列はスライスに矯正される。したがってスライスメソッドが呼ばれる配列でとな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA