Rust-错误处理、泛型trait和生命周期

错误处理

错误概述

在这里插入图片描述

应对panic

在这里插入图片描述在这里插入图片描述

使用panic!产生回溯信息

在这里插入图片描述

在这里插入图片描述

Result 枚举

在这里插入图片描述

处理result–match表达式

在这里插入图片描述

unwrap:match表达式的快捷方法,错误信息不能自定义

在这里插入图片描述

expect 错误信息可以自定义

let f=File::open(“hello”).expect(“无法打开”);

Result枚举与可恢复的错误

传播错误

在这里插入图片描述在这里插入图片描述

?运算符

实现与上一个代码相同的功能
如果result是ok:ok中的值就是表达式的结果,然后继续执行程序
如果Result是Err:Err就是整个函数的返回值,就像使用了return
在这里插入图片描述

?与from函数

在这里插入图片描述

?链式调用

在这里插入图片描述

?运算符只能用于返回类型为Result的函数

在这里插入图片描述

在这里插入图片描述

什么时候使用panic

在这里插入图片描述

指导性建议

在这里插入图片描述在这里插入图片描述

创建类型时验证

在这里插入图片描述

泛型

在这里插入图片描述

结构体中的泛型

在这里插入图片描述

enum中的泛型

在这里插入图片描述

方法定义中的泛型

在这里插入图片描述

方法中的泛型参数可以和结构体不同

在这里插入图片描述

trait

在这里插入图片描述

定义一个trait

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述impl Tweet: 为类型实现方法
impl 名字 for tweet:为类型实现trait

调用trait

在这里插入图片描述在这里插入图片描述

实现trait的约束

在这里插入图片描述

默认实现

trait中可以调用未实现的该trait的方法

trait作为函数参数

trait impl
trait bound
在这里插入图片描述在这里插入图片描述

使用+指定多个trait

在这里插入图片描述

where子句简化函数声明

在这里插入图片描述

实现trait作为返回类型

在这里插入图片描述在这里插入图片描述

使用trait bound的例子

在这里插入图片描述
在这里插入图片描述需要copy的trait 但是之前没添加这个约束(基本类型是copy,String类型是clone)
也需要用于比较大小的约束

使用trait bound有条件的实现方法

在这里插入图片描述
在这里插入图片描述

生命周期

在这里插入图片描述

避免悬垂引用

在这里插入图片描述因为x在花括号结束时内存就释放了
在这里插入图片描述被借用的生命周期要更长

例子

在这里插入图片描述
在这里插入图片描述

生命周期标注语法

在这里插入图片描述

语法

在这里插入图片描述

例子

在这里插入图片描述

函数签名中的生命周期

在这里插入图片描述
在这里插入图片描述

深入理解生命周期

在这里插入图片描述在这里插入图片描述

struct中定义的生命周期标注

在这里插入图片描述

生命周期的省略

在这里插入图片描述在这里插入图片描述在这里插入图片描述

输入输出生命周期

在这里插入图片描述

生命周期省略的三个规则

在这里插入图片描述
在这里插入图片描述最后报错

方法定义中的生命周期标注

在这里插入图片描述在这里插入图片描述

静态生命周期

在这里插入图片描述

参考视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置rust-analyzer的代码提示,你可以按照以下步骤进行操作: 1. 确保已经在你的项目中安装了rust-analyzer插件。你可以在VSCode的插件市场中搜索并安装"rust-analyzer"插件。 2. 打开VSCode的设置(可以通过菜单栏的"文件" -> "首选项" -> "设置"或者使用快捷键Ctrl + ,打开设置)。 3. 在设置页面的搜索框中输入"rust-analyzer",找到相关的设置选项。 4. 根据你的需求,配置下列常用的代码提示相关的设置: - "rust-analyzer.enable": 设置为true以启用rust-analyzer插件。 - "rust-analyzer.completion.enable": 设置为true以启用代码补全功能。 - "rust-analyzer.completion.addCallArgumentSnippets": 设置为true以自动添加函数调用时的参数提示。 - "rust-analyzer.completion.addCallParenthesis": 设置为true以自动添加函数调用时的括号。 - "rust-analyzer.completion.postfix.enable": 设置为true以启用后缀代码补全功能,例如`.if`、`.let`等。 - "rust-analyzer.hover.enable": 设置为true以启用悬停提示功能。 - "rust-analyzer.inlayHints.enable": 设置为true以启用内联提示功能。 5. 根据你的需求,可以进一步自定义配置rust-analyzer的代码提示行为。你可以在设置中找到更多相关的选项,并根据注释进行配置。 6. 保存设置,并重启VSCode使更改生效。 通过以上步骤,你可以根据自己的喜好和需求来配置rust-analyzer的代码提示功能。请注意,具体的配置选项可能会因rust-analyzer插件版本的不同而有所差异,请参考插件的官方文档或参考其它资源获取更多定制化的配置信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值