当前位置: 首页 > article >正文

day1 第二次入门rust

基础类型

创建变量的关键字:let

创建的变量默认是不可变化的,加上mut关键字才能改变

函数

宏macro

宏与函数类似,只是它不只是运行代码,而是扩展更多代码

宏使用 !去激活

if语句的条件不需要()

直接 if a>1 { }

循环语句:

loop是无限循环的,while是条件循环

隐式返回

  • Rust 中,函数体最后一个表达式的结果会自动作为返回值,无需 return 关键字
  • 若添加分号(a - b;),会变成语句而非表达式,导致编译错误

match

每种情况都要考虑,且结尾用的是逗号,因为是表达式

enum枚举

struct结构体

创建struct时,我们要表示出结构体中的每个属性

tuples元组

存一行记录

rust是一种基于表达式的语言

Ownership 所有权

rust使用 ownership来管理内存,防止内存泄漏

  • 一个函数创建一个变量,就拥有了这个变量的所有权
  • 调用函数的默认行为就是将内存移向新的所有者

所有权的体现,进入第一个display_light函数后就被销毁了                            

于是在进入第二个display_light函数,light就已经为空了

借用、引用&

改进版本:修改为借用

&代表我们去借用这个数据,意味着我们就不能去用完删除了,用完就还回去

impl实现

把和这个struct相关的函数放在一个impl当中

区分 :: 和    .

Vector动态数组

存相同类型的东西,可以添加push,删除pop,遍历for in

String  and  &str

  • String:owned        在结构中使用字符串时,要使用String             
  • &str: borrowed String slice      调用函数,传参时使用&str

String是自动被借用的,使用.to_owned() 或者 String::from() 去获取一个owned copy of string slice

e

Option

Result

HashMap


http://www.kler.cn/a/572819.html

相关文章:

  • dify、open-webui、chatbox 对比
  • MFC扩展库BCGControlBar Pro v36.1新版亮点 - 对话框表单组件升级
  • Linux 命令终极指南:分类详解与实战场景
  • 内核编程八:基于printk宏的pr_* 宏
  • Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据
  • ASP.NET Core 3.1 修改个别API返回JSON序列化格式
  • e2studio开发RA2E1(15)----配置RTC时钟及显示时间
  • 如何排查服务器内存泄漏问题
  • Java 导出 PDF 文件:从入门到实战
  • 云上大数据平台的优化:提升效率与可靠性的实践
  • 【uniapp】新闻列表+跳转详情页+评论展示(uni.request请求接口)
  • 生产制造中人、机、料、法、环对应的系统服务拆分
  • [自动驾驶-传感器融合] 多激光雷达的外参标定
  • VIA的寄生电感和Stub对高速信号的影响
  • angular+nodejs问卷调查系统
  • ubuntu24.04 经常更新内核,导致GPU不能用,如何锁定内核版本
  • 树状数组倍增
  • 轮训调接口
  • AI生成的web框架 包含前后端 k8s管理等