我发现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
之前对其进行引用。
答案 0 :(得分:6)
include_bytes!
会生成&[u8; N]
类型的内容,因此&…[..]
包装是为了获得&[u8]
。
答案 1 :(得分:4)
使用切片作为输入来编写函数是惯用的Rust,因为那个函数可以用于任何可以切片的集合。