各位老铁们,大家好,今天由我来为大家分享深入浅出Rust编程语言教程(第二部分),以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
第二部分 - 内存安全 -2
第16章 解引用
解引用(deref 是)引用(Ref)的逆操作,使用"*"运算符
1. 自定义解引用
实现了std:ops:Deref 或std:ops:DerefMut#[lang="deref"] 的两个Traits
#[文档(别名="*")]
#[文档(别名="*")]
#[稳定(功能="rust1",因为="1.0.0")]
酒吧特质Deref {
///取消引用后的结果类型。
#[稳定(功能="rust1",因为="1.0.0")]
#[rustc_diagnostic_item="deref_target"]
类型Target:大小;
///取消引用该值。
#[必须使用]
#[稳定(功能="rust1",因为="1.0.0")]
#[rustc_diagnostic_item="deref_method"]
fn deref(self) -Self:Target;
}
#[lang="deref_mut"]
#[文档(别名="*")]
#[稳定(功能="rust1",因为="1.0.0")]
酒吧特质DerefMut: Deref {
///可变地取消引用该值。
#[稳定(功能="rust1",因为="1.0.0")]
fn deref_mut(mut self) -mut Self:Target;
}
#[稳定(功能="rust1",因为="1.0.0")]
implDerefMut for mut T {
fn deref_mut(mut self) -mut T {
*自己
}
}智能指针16-1.png
2. 自动解引用
默认情况下,无论Trait中的方法定义是T、T还是mut T,都可以通过操作来调用,编译器会执行自动解引用操作fn main() {
让s="你好";
println!("length: {}", (s).len());
这样的夸张是可以编译的,因为它是通过自动解引用来反汇编的。
3. 自动解引用的用处
是的,必要时包装类可以自动转换为“基类”。例如,String可以自动转换为str,从而实现智能指针的透明使用。
4. 手工处理
如果包装类和基类都实现了相同的方法,则需要手动解锁才能调用
5. 智能指针
引用计数: Rc, ArcCow (Copy-On-Write) : 在标准库中,Cow 是一个枚举,通常与str 一起使用
第17章 泄露
1. 内存泄露(构造一个内存泄露的代码)
17-1- 1.png 在Rust 中,要编写一段内存泄漏的代码并不容易.
关于深入浅出Rust编程语言教程(第二部分)和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
【深入浅出Rust编程语言教程(第二部分)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于等到了第二部分啦!之前第一部分看得还挺有帮助。
有11位网友表示赞同!
我比较感兴趣的是Rust在开发安全的方面的应用场景,这部分应该会讲得更详细吧?
有15位网友表示赞同!
希望这篇文章能继续深入讲解一些Rust的难点所在,比如借用和所有权等概念。
有10位网友表示赞同!
我对Rust语言的性能一直很关注,希望能在这篇文章中学习到更多提高效率的小技巧。
有15位网友表示赞同!
我前一段时间刚开始接触Rust,这篇第二部分正好可以帮助我巩固基础知识。
有15位网友表示赞同!
希望这篇文章能用通俗易懂的语言讲解,让我这个新手也能更好地理解Rust。
有14位网友表示赞同!
期待作者能分享一些实用的Rust代码示例,方便我们实践和学习。
有9位网友表示赞同!
文章第一部分我已经看好几遍了,这部第二部分更期待了!
有8位网友表示赞同!
我的目标是想用Rust来开发一个网络应用,这篇文章有没有讲到相关知识?
有8位网友表示赞同!
我对Rust的类型系统一直很好奇,希望能从这篇文章中了解得更多。
有8位网友表示赞同!
文章第一部分让我对Rust很有兴趣,现在就开始期待第二部分了!
有12位网友表示赞同!
我想了解一下Rust在游戏开发中的应用情况,希望这篇文章能有所提及。
有9位网友表示赞同!
Rust的并发编程模型很强大,希望能在这篇文章中详细讲解一下。
有18位网友表示赞同!
我对Rust的包管理工具Cargo很感兴趣,希望能在这篇文章中了解更多它的使用方法。
有8位网友表示赞同!
我已经开始学习Rust了,希望这篇文章能给我一些新的启发和帮助。
有16位网友表示赞同!
在工作中我需要用到Rust,这篇第二部分刚好可以帮助我在实践中积累经验。
有12位网友表示赞同!
作者的写作风格很清透易懂,期待继续看到精彩内容!
有19位网友表示赞同!
希望这篇文章能涵盖 Rust 语言的关键特性和应用场景。
有19位网友表示赞同!
学习Rust是一段奇妙的旅程,这篇文章会带给我更多对Rust的理解。
有13位网友表示赞同!