Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么切片整个阵列很有用?_Arrays_Rust - Fatal编程技术网

Arrays 为什么切片整个阵列很有用?

Arrays 为什么切片整个阵列很有用?,arrays,rust,Arrays,Rust,我在中发现一些代码似乎占据了整个数组的一部分: use std::io::Cursor; let image = image::load(Cursor::new(&include_bytes!("/path/to/image.png")[..]), image::PNG).unwrap(); include_字节显示将给定文件加载到内存中,然后作为静态数组返回对该文件的引用。我对此感到困惑的是,为什么在将整个数组的一个片段传递给Curso

我在中发现一些代码似乎占据了整个数组的一部分:

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

include_字节
显示将给定文件加载到内存中,然后作为静态数组返回对该文件的引用。我对此感到困惑的是,为什么在将整个数组的一个片段传递给
Cursor::new

之前要引用它呢?编写以片段作为输入的函数是习惯用法,因为这样该函数就可以与任何可以切片的集合一起使用。

包含字节
产生了
&[u8;N]
类型的东西,因此
&…[…]
包装就是要从中获得
&[u8]

也许可以添加或描述为什么要这样做?如果是这样的话,
&不包括字节吗足够吗?@louis058:不,
&包含字节!()
将只是
和&[u8;N]
。您需要将其作为常规切片获取,以便
std::io::{Cursor,Read,Seek}
的I/O内容在其上工作。@Veedrac您会使用什么替代方法
Read
仅对
游标的少数实例实现,但构造函数允许任何类型。@Shepmaster我的意思是
和[…]
@Veedrac说得很好,让我们看看能不能。