Rust高级特性深入解析
1. 不安全代码的使用
在Rust中,如果类型完全由 Send 和 Sync 类型组成,编译器会自动实现 Sync 和 Send 标记特征。但如果实现的类型包含非 Send 或 Sync 的类型(如原始指针),并且想将该类型标记为 Send 或 Sync ,就必须使用 unsafe 代码。因为Rust无法验证该类型是否能安全地跨线程发送或被多线程访问,所以需要手动进行检查并使用 unsafe 来表明。
使用 unsafe 代码进行四种操作(超能力)并非错误或被禁止,但由于编译器无法帮助维护内存安全,编写正确的 unsafe 代码更具挑战性。当有理由使用 unsafe 代码时,可以使用,而且显式的 unsafe 注解能在出现问题时更容易追踪问题的来源。
2. 关联类型指定占位符类型
关联类型将类型占位符与特征关联起来,使特征方法定义能够在其签名中使用这些占位符类型。特征的实现者将为特定实现指定要使用的具体类型。这样,我们可以定义一个使用某些类型的特征,而不必在实现该特征之前确切知道这些类型是什么。
2.1 关联类型示例:迭代器特征
标准库提供的 Iterator
超级会员免费看
订阅专栏 解锁全文
1126

被折叠的 条评论
为什么被折叠?



