介绍

本系列录制的视频主要放在B站上Rust死灵书学习视频

Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source

类型转换

考虑例子:

struct Foo {a: i32,b: i32,
}struct Bar {a: i32,b: i32,
}fn main() {let f = Foo{a: 1, b: 2};//let _b: Bar = f;let _b: Bar = Bar{a: f.a, b: f.b};//let _b: Bar = Bar{a: f.a, b: f.b};let b = unsafe {&*(&f as *const Foo as * const Bar) };println!("b = {:#?}", b);
}

说明:即使内部数据一样,也不能直接转换,如果要转换,则先转换成指针类型,然后在转换成目标指针类型,在解引用成目标类型。

强制类型转换

转换时,类型会被弱化,举一个例子:

&mut T 转换为 &T

特别注意的:在匹配 trait 的时候不会发生强制类型转换(receiver 除外,具体见下)。也就是说,如果为 U 实现了一个 trait,T 可以强制转换为 U,并不能认为 T 也实现了这个 trait。

trait Trait {}fn foo<X: Trait>(t: X) {}impl<'a> Trait for &'a i32 {}fn main() {let t: &mut i32 = &mut 0;foo(t);//此处报错,&mut i32转换成 i32,并不表示&mut i32页实现了Trait这个trait。
}

013 Rust死灵书之类型转换相关推荐

  1. 014 Rust死灵书之显式类型转换

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 知 ...

  2. 015 Rust死灵书之Transmutes转换

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 介绍 m ...

  3. 016 Rust死灵书之安全方式内存初始化

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 介绍 所 ...

  4. 020 Rust死灵书之展开

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source Rust ...

  5. 025 Rust死灵书之原子操作

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 原 ...

  6. 026 Rust死灵书之实现Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 从 ...

  7. 019 Rust死灵书之资源管理

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 基于所有 ...

  8. 024 Rust死灵书之Send和Sync

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source S ...

  9. 008 Rust死灵书之生命周期

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust相关的源码资料在:https://github.com/anonymousGiga 笔记内容 今天我们跟大家聊一聊生命周期. 命周期 ...

最新文章

  1. IntPtr to bytes
  2. SQL SERVER中ROLLUP的用法
  3. 想从事分布式系统,计算,hadoop等方面,需要哪些基础,推荐哪些书籍?--转自知乎...
  4. 代码模板在哪里_C++的可变参数模板
  5. Nand Flash VS Nor Flash
  6. 技术分享 | CodeReview主要Review什么?
  7. 【Clickhouse】Clickhouse 集成kafka
  8. 二叉搜索树(排序二叉树)
  9. asp.net控件的Hyperlink控件
  10. 分享几款PR常用插件
  11. matlab分析系统灵敏度,matlab灵敏度分析函数
  12. 思维模型 时间管理矩阵
  13. 时间和天数相加并格式化
  14. Zedboard 运行linaro操作系统
  15. Entrepreneur\'s Credo of the American 美国的企业家宣言
  16. 硬盘柱面损坏怎么办_硬盘扇区损坏怎么办
  17. 如何解决苹果电脑(Macbook Pro)没有声音?
  18. 微信公众号开发:用从微信服务器下载图片资源
  19. 此图形驱动程序无法找到兼容的图形…
  20. Maven文件重命名

热门文章

  1. springboot+poi支持excel版本问题
  2. 刷脸支付将呈现爆发式增长!中国将全面进入刷脸支付新时代!
  3. 微软高层新近对Linux桌面的说法
  4. 2019年美亚杯电子数据取证大赛-内存取证
  5. 微信小程序发展(未完待续)
  6. 深度协同过滤NCF实践
  7. 神经协同过滤Neural Collaborative Filtering(NCF)
  8. 【智能制造】李培根院士:2017-2018中国制造业及智能制造十大热点
  9. 人工智能有什么价值和意义
  10. 面向对象编程(OOP)