小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI
沉浸式翻译 immersive translate
切片与数组:[i32; 3]、[i32]、&[i32; 3]、&[i32] 到底有什么区别?

Rust 中数组长度是类型的一部分,[i32; 3] 与 [i32; 4] 是不同类型;[i32] 是动态大小类型,不能单独作参数,只能藏在指针后。&[i32; 3] 是 8 字节瘦指针,&[i32] 是 16 字节胖指针(地址加长度)。函数参数应优先写 &[T] 或 &mut [T],可通吃数组、Vec 和子区间;只有需严格限定长度时才用 &[T; N]。数组到切片靠编译器内置的非固定大小转换,Vec 到切片靠 Deref 强制转换,二者机制不同。

切片与数组:[i32; 3]、[i32]、&[i32; 3]、&[i32] 到底有什么区别?

Tony Bai Tony Bai · 2026-11-10T01:00:00Z

Rust中的Deref强制转换是一个方便的功能,允许处理智能指针和拥有的值。它使代码更简洁、可读,确保只访问有效的数据。Rust的智能指针管理数据的生命周期,确保内存安全。Box<T>是最简单的智能指针,可以通过取消引用操作符(*)访问其值。自定义智能指针可以创建类似Box<T>的智能指针。Deref强制消除了显式引用和取消引用的需要,仅适用于引用类型,且发生在编译时。

Rust中智能指针与Deref强制

极道 极道 · 2023-12-15T05:25:00Z

这段代码实现了Deref trait的impl块,用于解引用Box<T, A>类型,返回T的引用。具体实现通过两次解引用操作获取T的引用。

向大佬请教Box的Deref实现问题

Rust.cc Rust.cc · 2023-08-12T00:09:48Z

【原创】从·类型转换·视角,浅谈Deref<Target = T>, AsRef<T>, Borrow<T>和From<T> trait差异 概述 这些trait的共同作用就是“类型转换”,但它们“类型转换”的内容各有不同: Deref<Target = T> / DerefMut<Target = T> trait —...

【原创】从·类型转换·视角,浅谈Deref<Target = T>, AsRef<T>, Borrow<T>和 From<T> trait 差异

Rust.cc Rust.cc · 2022-07-17T08:07:12Z
  • <<
  • <
  • 1 (current)
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码