dol*_*hin 3 string ownership rust
有str没有不借就用的情况?这甚至有意义吗?
我明白之间的差别String和&str,但由于有&str也必须有str?
你不能用type的值做太多事情str,但在很多情况下你会想要引用 type str。
Box<str>or Rc<str>- 拥有的类型,类似于String,但不能改变以增长或重新分配
任何时候您想要接受可以被视为字符串的任意类型,您都可以使用诸如T: Deref<Target = str>,T: AsRef<str>或 之类的约束T: Borrow<str>。例如HashMap::get具有以下签名:
pub fn get<Q: ?Sized>(&self, k: &Q) -> Option<&V> where
K: Borrow<Q>, // K is the key type for the HashMap
Q: Hash + Eq,
Run Code Online (Sandbox Code Playgroud)
这意味着您可以拥有HashMap<String, i32>,但可以使用&str键访问值,例如map.get("key")。这里Q将被推断为str,但k参数仍然是&str( &Q)。
在?Sized该注解装置Q并不需要在编译时已知的大小,明确允许未分级的类型喜欢str使用。
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |