为什么切片整个数组很有用?

时间:2015-09-07 20:41:33

标签: arrays rust

我发现an in-progress tutorial for Glium中的一些代码似乎占用了整个数组:

use std::io::Cursor;
let image = image::load(Cursor::new(&include_bytes!("/path/to/image.png")[..]),
                        image::PNG).unwrap();

include_bytes!似乎将给定文件加载到内存中,然后将其作为静态数组返回给它。令我感到困惑的是,为什么你会在将整个数组传递给Cursor::new之前对其进行引用。

2 个答案:

答案 0 :(得分:6)

include_bytes!会生成&[u8; N]类型的内容,因此&…[..]包装是为了获得&[u8]

答案 1 :(得分:4)

使用切片作为输入来编写函数是惯用的Rust,因为那个函数可以用于任何可以切片的集合。