36、Rust高级特性深入解析

Rust高级特性深入解析

1. 不安全代码的使用

在Rust中,如果类型完全由 Send Sync 类型组成,编译器会自动实现 Sync Send 标记特征。但如果实现的类型包含非 Send Sync 的类型(如原始指针),并且想将该类型标记为 Send Sync ,就必须使用 unsafe 代码。因为Rust无法验证该类型是否能安全地跨线程发送或被多线程访问,所以需要手动进行检查并使用 unsafe 来表明。

使用 unsafe 代码进行四种操作(超能力)并非错误或被禁止,但由于编译器无法帮助维护内存安全,编写正确的 unsafe 代码更具挑战性。当有理由使用 unsafe 代码时,可以使用,而且显式的 unsafe 注解能在出现问题时更容易追踪问题的来源。

2. 关联类型指定占位符类型

关联类型将类型占位符与特征关联起来,使特征方法定义能够在其签名中使用这些占位符类型。特征的实现者将为特定实现指定要使用的具体类型。这样,我们可以定义一个使用某些类型的特征,而不必在实现该特征之前确切知道这些类型是什么。

2.1 关联类型示例:迭代器特征

标准库提供的 Iterator

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值