首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
特型专题
Rust常用特型之Borrow和BorrowMut特型
在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 std::borrow::Borrow和AsRef有点相似,如果一个类型实现了Borrow<T>,那么你可以从它的borrow函数里高效的借出一个&T。但是Borrow施加了一些限制,就是借出的&T必须和该类型拥有相同的哈希和比较算法。注意,Rust并不强制这一点,只是标准库注明了该特型的限制。这使
阅读更多...
Rust常用特型之AsRef和AsMut特型
在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 今天我们要学习的AsRef和AsMut,和前面学习的Deref和DerefMut有那么一点混淆的地方。 当一个类型U实现了AsRef<T>,那么我们可以高效的从U借出一个T的引用。AsMut对应的是借出可变引用。它们的定义如下: trait AsRef<T: ?Sized> {fn as_ref
阅读更多...
Rust常用特型之ToOwned特型
在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 ToOwned 这次我们来学一个和Borrow特型相关的特型,叫ToOwned类型。看字面意思Borrow是代表借出,而ToOwned代表去拥有它。 在Rust中,假定某类型实现了Clone特型,如果给你一个对它引用,那我们得到它指向内容的备份的最常见方式是调用其clone()函数。但是如果你想
阅读更多...
Rust常用特型之Drop特型
Rust常用特型之Drop特型.md在Rust标准库中,存在很多常用的工具类特型,它们能帮助我们写出更具有Rust风格的代码。 今天,我们主要学习Drop特型。 (注:本文更多的是对《Programing Rust 2nd Edition》的自己翻译和理解,并不是原创) 一、什么是Drop 当一个值不再拥有owner时(在Rust中每个值都有一个owner,并且最多只有一个owner
阅读更多...