给定一个固定长度char
数组如:
let s: [char; 5] = ['h', 'e', 'l', 'l', 'o'];
我如何获得&str
?
你不能没有一些分配,这意味着你最终会得到一个String
.
let s2: String = s.iter().collect();
问题是 Rust 中的字符串是not的集合char
s,它们是UTF-8,这是一种每个字符没有固定大小的编码。
例如,本例中的数组将占用 5 x 32 位,总共 20 个字节。字符串的数据总共需要 5 个字节(尽管还有 3 个指针大小的值,所以总体来说String
在这种情况下需要更多内存)。
我们从数组开始并调用[]::iter,它产生类型的值&char
。然后我们使用Iterator::collect to 。这使用了迭代器size_hint
to 预先分配空间String,减少额外分配的需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)