Rust 编程视频教程(进阶)——011_3 解引用多态

视频地址

头条地址:https://www.ixigua.com/i6775861706447913485
B站地址:https://www.bilibili.com/video/av81202308/

源码地址

github地址:https://github.com/anonymousGiga/learn_rust

讲解内容

1、解引用强制多态
例子:接上面例子

fn hello(name: &str) { 
    println!("Hello, {}!", name); 
}

fn main() { 
    let m = MyBox::new(String::from("Rust")); 
    hello(&m); //此处解引用时,强制多态,将&String变为&str,否则的话此处需要:hello(&(*m)[..]); 
}

2、解引用多态与可变性交互
解引用多态有如下三种情况:

  • 当 T: Deref<Target=U> 时从 &T 到 &U。
  • 当 T: DerefMut<Target=U> 时从 &mut T 到 &mut U。
  • 当 T: Deref<Target=U> 时从 &mut T 到 &U。(注意:此处反之是不可能的)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容