Rust 为何a&;str称之为铁锈切片?
这让我觉得它是其他字符串的子字符串,而它只是堆栈分配的字符串。我对它有错误的理解吗 当它只是一个堆栈分配的字符串时 这并不完全正确。字符串片段(Rust 为何a&;str称之为铁锈切片?,rust,Rust,这让我觉得它是其他字符串的子字符串,而它只是堆栈分配的字符串。我对它有错误的理解吗 当它只是一个堆栈分配的字符串时 这并不完全正确。字符串片段(&str)在概念上由两部分组成: 指向字符串开头的指针 字符串中的字节数 指针可以引用堆栈、堆甚至常量程序数据中的数据 它之所以称为字符串片,是因为它镜像了一个常规片(&[T]),它由两部分组成:指针和长度 在引擎盖下,字符串是u8(&[u8])的一部分,但它有一个非常重要的保证:字节序列是有效的UTF-8 其他字符串的子字符串 请注意,您可以获取某个对
&str
)在概念上由两部分组成:
&[T]
),它由两部分组成:指针和长度
在引擎盖下,字符串是u8
(&[u8]
)的一部分,但它有一个非常重要的保证:字节序列是有效的UTF-8
其他字符串的子字符串
请注意,您可以获取某个对象的“整个子字符串”或“整个切片”,它不必严格地更小。例如:
let test_scores = [0, 10, 100];
let all_scores = &test_scores[..]; // or &test_scores[0..3]
let some_scores = &test_scores[0..1];
我想是的。看一看字符串片段,实际上,字符串片段是这样调用的,因为它们可以引用内存中某个字符串的子字符串。这与常规切片相同,后者指的是数组的一部分。