RUST学习笔记

ops/2024/12/13 16:25:21/

文章目录

  • 安装与简介[参考RUST官网安装](https://www.rust-lang.org/zh-CN/tools/install)
  • 代码学习[参考RUST官网](https://doc.rust-lang.org/book/ch00-00-introduction.html)
    • 关键字
      • 数据类型
        • 数值类型变量
          • 整型
          • arch类型
          • 浮点类型
          • 布尔类型
          • 复合数据类型

安装与简介rust-lang.org/zh-CN/tools/install" rel="nofollow">参考RUST官网安装

  • 静态类型语言:必须在编译时确定数据类型。
  • 变量默认不可变,
  • 子模块默认私有,方便隐藏实现细节
  • 没有null
  • 编译器穷尽所有编译可能,以避免出错。
    内存相关的
  • 所有权、深浅copy比较特殊
    • 栈区,默认不区分深浅copy,还有Copy trait
    • 堆区,默认浅copy转移所有权
      • String数据类型是
  • Copy trait A赋值给B,后A依旧可用
  • Drop trait 类型禁止使用Copy trait
    Rust 的默认方式和C++大部分是反着的,变量引用默认不可修改,函数形参默认为所有权转移。栈区默认是类似Copy trait(个人感觉有点像深拷贝),堆区默认是所有权转移。

代码学习rust-lang.org/book/ch00-00-introduction.html" rel="nofollow">参考RUST官网

关键字

  • let创建变量
  • mut可变变量

数据类型

数值类型变量
整型
有符号数无符号数
i8 8bit整型u8 8bit整型
i16 16bit整型u16 16bit整型
i32 32bit整型(默认整型)u32 32bit整型
i64 64bit整型u64 64bit整型
i128 128bit整型u128 128bit整型
arch类型

依赖运行程序的计算机架构:64 位架构上它们是 64 bit的,32 位架构上它们是 32 bit的。

  • isize有符号arch
  • usize无符号arch
浮点类型
  • f32 浮点数32bit
  • f64 浮点数64bit
布尔类型
  • bool布尔值 truefalse
复合数据类型
  • tuple
    let x: (i32, f64, u8) = (500, 6.4, 1);
    let five_hundred = x.0;
    let six_point_four = x.1;
    let one = x.2;
    
  • array
    let a = [1, 2, 3, 4, 5];
    let a: [i32; 5] = [1, 2, 3, 4, 5];
    let first = a[0];
    let second = a[1];
    

http://www.ppmy.cn/ops/141580.html

相关文章

《C++赋能自然语言处理:词向量模型的构建与应用》

在人工智能的璀璨星空中,自然语言处理(NLP)无疑是一颗耀眼的明星。它致力于让计算机理解、分析和生成人类语言,从而实现人机之间更加自然流畅的交互。而词向量模型作为自然语言处理的重要基石,能够将单词映射到低维向量…

React框架:解锁现代化Web开发的新维度

在当今前端开发领域,React 无疑是一颗璀璨的明星。React 是由 Facebook 开发的用于构建用户界面的 JavaScript 库,它在前端开发中占据着重要的地位,为开发者提供了一种高效、灵活且可维护的方式来构建复杂的用户界面。 一、React 的背景与开…

鸿蒙元服务上架

鸿蒙元服务上架 一、将代码打包成 .app 文件1. 基本需求2. 生成密钥和证书请求文件3. 申请发布证书4. 申请发布Profile5. 配置签名信息6. 更新公钥指纹7. 打包项目成 .app 文件 二、发布元服务1. 进入应用信息页面2. 上传软件包3. 配置隐私协议4. 配置版本信息5. 提交审核&…

【消息队列】ubuntu单机版RocketMQ安装

1. 安装rocketmq 下载二进制包: wget https://dist.apache.org/repos/dist/release/rocketmq/5.3.0/rocketmq-all-5.3.0-bin-release.zip unzip rocketmq-all-5.3.0-bin-release.zip mv rocketmq-all-5.3.0-bin-release rocketmq-5.3.0 修改JVM配置内存大小&…

JVM调优

JVM调优 1、JVM性能调优指标熟悉哪些? JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃…

ssd202d-badblock-坏块检测

这边文章讲述的是坏快检测功能 思路: 1.第一次烧录固件会实现跳坏块,但是后续使用会导致坏块的产生; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否…

【FreeMarker】实现生成Controller根据模板勾选的内容查询

需求:根据模板列表勾选的字段查询列表数据 FreeMarker代码: /*** 分页列表查询** param ${entityName?uncap_first}* param pageNo* param pageSize* param req* return*///AutoLog(value "${tableVo.ftlDescription}-分页列表查询")ApiOp…

Scala泛型的特质

package test39 //泛型特质object test5 { //定义一个日志//泛型特质.X是泛型名称,可以更更改trait Logger[X]{val content:Xdef show():Unit }//定义一个类去实现特质class FileLogger extends Logger[String]{override val content: String "file"over…