首页 > 其他分享 >Rust_learn_1

Rust_learn_1

时间:2024-08-06 17:38:51浏览次数:16  
标签:mut 常量 xx let learn 声明 Rust 变量

变量与可变性

变量

声明变量使用let关键字,在默认情况下,变量是不可变的(Immutable)

image-20240806172626179

为此解决该问题,声明变量时在前面加上 mut,就可以使变量可变

image-20240806172643913

常量

常量(constant),在绑定值之后也是不可变的,但是与不可变的变量有很多区别:

  • 不可以使用mut,常量永远是不变的

  • 声明常量用const关键字,类型必须被标注

    image-20240806172808852

    image-20240806172830448

  • 常量可以在任何作用域中声明,包括全局作用域

  • 常量只可以绑定到常量表达式,无法绑定到函数的调用结果或只能在运行时才能计算出的值

在程序运行期间。常量在其声明的作用域内一直有效

shadowing(隐藏)

可以使用相同的名字声明新的变量,新的变量就会隐藏之前声明的同名变量,在后续代码中这个变量名表示的是新的变量

shadow 和把变量标记为mut是不同的:

  • 如果不使用let关键字,重新给非mut的变量赋值会导致编译时错误(就是上面所说的变量是不可变的)
  • 而使用let声明的同名新变量,也是不可变的
  • 使用let声明的同名新变量,它的类型可以与之前不同
let  _kk=1;
println!("{}",_kk);
let _kk = 2;
println!("{}",_kk);

let _xx = "123";
print_type_of(&_xx);  //&str
let _xx = _xx.len();
print_type_of(&_xx); //usize

标签:mut,常量,xx,let,learn,声明,Rust,变量
From: https://www.cnblogs.com/solutide/p/18345701

相关文章

  • 清除 Nuxt 数据缓存:clearNuxtData
    title:清除Nuxt数据缓存:clearNuxtDatadate:2024/8/6updated:2024/8/6author:cmdragonexcerpt:摘要:本文详细介绍了Nuxt.js框架中的clearNuxtData方法,用于清除useAsyncData和useFetch缓存的数据、错误状态和待处理promises,以实现数据的实时更新和重载。通过实际示例展......
  • LearnOpenGL 笔记 -- VAO & VBO
    1前言VAO和VBO属于我们学习opengl最先接触的几个概念,最开始学习的时候有可能无法直观的理解这个概念的作用和使用方法。笔者也是opengl新手,在此记录学习的相关笔记,便于之后进行查看。本文主要参考learnopengl教程以及opengl官网中的用法和解释,文中的代码实例使用opengl3.3,过......
  • 深入理解 Scikit-Learn 中的 fit, transform 和 fit_transform
    #深入理解Scikit-Learn中的fit,transform和fit_transform在使用Scikit-Learn进行数据处理和机器学习建模时,经常会遇到三个重要的方法:`fit`、`transform`和`fit_transform`。它们是Scikit-Learn中用于数据预处理、特征提取和模型训练的核心方法。本文将详细解释这......
  • Machine Learning Operations
    MachineLearningOperationshttps://ml-ops.org/WithMachineLearningModelOperationalizationManagement(MLOps),wewanttoprovideanend-to-endmachinelearningdevelopmentprocesstodesign,buildandmanagereproducible,testable,andevolvableML-......
  • [Rust]使用Rocket框架搭建简单Web服务
    本文主要讲述如何在Rust中使用Rocket搭建简易Web服务1.添加Rocket库Cargo.toml[dependencies]rocket={version="0.5.1",features=["secrets"]}2.创建服务2.1创建一个启动脚本main.rsuserocket::{launch,routes};#[launch]fnrocket()->_{rocket......
  • Rust项目的代码组织
    学习一种编程语言时,常常优先关注在语言的语法和标准库上,希望能够尽快用上新语言来开发,我自己学习新的开发语言时也是这样。不过,想用一种新的语言去开发实际的项目,或者自己做点小工具的话,除了语言本身之外,了解它在项目中如何组织代码也是至关重要的。毕竟在实际项目中,不可能像学习......
  • 【转载】在Android中使用Rust:Rust与Android的结合
    声明:处于学习目的转载本文,若文章侵犯原作者权益,联系本人立即删除,联系方式:[email protected]文章转载于:https://developer.baidu.com/article/detail.html?id=3011246 简介:本文将介绍如何在Android平台上使用Rust编程语言,以及Rust与Android的结合所带来的优势和挑战。我们将探......
  • Deep Learning-Based Multiclass Instance Segmentation for Dental Lesion Detection
    Abstract为此,我们提出了一种用于根尖周疾病检测的轻量级Mask-RCNN模型。该模型分为两部分构建:轻量级的改进MobileNet-v2骨干网和基于区域的网络(RPN),用于小数据集的根尖周疾病定位。为了测量所提出模型的有效性,轻量级的Mask-RCNN在包含五种不同类型根尖周围病变图像的自定义......
  • 【Rust光年纪】提升数据安全性与完整性:Rust语言哈希算法库深度对比
    深入探索Rust中的哈希算法库:安装配置与API解析前言在现代软件开发中,数据的安全性和完整性是至关重要的。哈希算法作为一种常见的数据加密和校验手段,在Rust语言中有着广泛的应用。本文将介绍几个用于Rust语言的常见哈希算法库,包括blake2、sha2、md5、crc32、xxhash以及siph......
  • Windows的Docker安装RustDesk自建服务
    一、安装DockerDesktopInstaller 二、CMD拉取RustDesk镜像dockerimagepullrustdesk/rustdesk-server三、创建docker-compose.yml文件services:hbbs:container_name:hbbsimage:rustdesk/rustdesk-server:latestcommand:hbbs-r公网IP:端口(21117......