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

具体的网站建设方案网页程序开发采购

具体的网站建设方案,网页程序开发采购,微信公众号文章怎么转换wordpress,淮安建设机械网站制作Rust之抽空学习系列#xff08;三#xff09;—— 编程通用概念#xff08;中#xff09; 1、变量可变性 在Rust中#xff0c;变量默认是不可变的 fn main() {let x 5;println!(x is {}, x); }使用let来声明一个变量#xff0c;此时变量默认是不可变…Rust之抽空学习系列三—— 编程通用概念中 1、变量可变性 在Rust中变量默认是不可变的 fn main() {let x 5;println!(x is {}, x); }使用let来声明一个变量此时变量默认是不可变的因此x的值是5如果修改就会发生报错 想要再次将x赋值为6时编译报错了提示无法对不可变的变量x两次赋值并且还贴心地标注了两次赋值发生的位置也给出了修改建议让我们考虑使用mut来绑定变量x 这个不可变变量的感觉就像是Java中的final修饰的变量或者是Kotlin中val声明的变量仅仅是赋值一次而后不可修改 而将变量声明为可变就要用到刚刚建议里提及的mut关键字了 fn main() {let mut x 5; // 声明为可变x 6;println!(x is {}, x); }此时代码正常运行输出6可变的需要开发者自己来添加这无形中也是倒逼开发者去思考设置可变的用途和必要性 在Rust中不可变的行为是默认的而可变的行为需要开发者自己指定这也是安全性的体现 2、常量 在Rust中常量是使用const关键字来进行声明的 但是在进行常量声明的时候有一些需要注意的内容 不可以使用mut必须标注类型可在任意作用域内声明仅可以使用常量表达式赋值 不能使用mut很好理解了本身常量和变量就是矛盾的嘛 使用常量表达式进行赋值的原因是由于它们能够在编译时被计算出来 fn main() {const MAX_POINTS: u32 100000; // 指明类型const ONE_HOUR: u32 60 * 60; // 常量表达式println!(The maximum number of points is {}, MAX_POINTS); } const MY_NAME: str John; // 任何作用域3、变量遮蔽 变量遮蔽指的是新声明的变量覆盖了旧的同名变量 fn main() {let x 5;let x x 1; // 6let x x * 2; // 12println!(The value of x is: {}, x); }使用变量遮蔽与将变量声明为mut是不同的使用变量遮蔽声明的新变量依旧是不可变的只不过相当于是用来保存新的数据了除此以外变量遮蔽甚至还可以修改变量的类型请牢记这是新的变量 那么此时我就想到一个场景很适合使用这个特性 比方说在实际业务当中后端接口返回了一个时间戳表示的长串数字前端需要以yyyy-MM-dd这样的格式展示这样的话通常我们是这样处理的 fn main() {let date 1677386710000; // 可能是精确到毫秒的let formatedDate get_formated_date_str(date, yyyy-MM-dd);println!(formatedDate: {}, formatedDate); }此时我们产生了一个中间变量date但是它仅仅在这里用于转换我们真正要显示的其实是formatedDate那么我们可以借助变量遮蔽稍微修改下 fn main() {let date 1677386710000; // 1.0版本 原材料let date get_formated_date_str(date); // 2.0版本 加工上市的成品println!(formatedDate: {}, formatedDate); }使用变量遮蔽就可以将同一个或一类的内容的加工作为多个版本最后用到的那一版作为结果 帮忙省去了那些命名费解、存在又很尴尬的临时量使得代码的业务逻辑主线更加清晰 4、数据类型 4.1、标量类型 标量类型作为单个值类型的统称 Rust内部定义了4种基础的标量类型 整数浮点数布尔值字符 4.1.1、整数类型 整数类型表示的就是不包含小数部分的整数其中分为有符号和无符号 无符号数始终不为负开头使用u区别比如u32 有符号数通过二进制补码的形式来存储 以下是关于各个类型的整数类型所能够表示的范围 除了直接指明描述位数的类型像i32u32还有isize和usize两种特殊的类型它们的长度取决于程序运行的目标平台 字面量 整数的字面量可以有多种形式呈现 整数溢出 整数溢出主要是由于存储的数超出类型的限制就像往桶里倒水一样 在debug模式下发生整数溢出会抛出panic let big: u8 255; let small 3; let result small big; // 会发生溢出 print!(结果{}, result)很明显255已经是u8的极限了 程序发现这个算术运算有溢出的风险立马抛出错误中止执行 4.1.2、浮点类型 Rust提供了两种基础的浮点数类型f32f64 在Rust中浮点类型默认会被推导为f64类型因其在现代CPU执行中相较于f32有更高精度执行效率也相差无几 使用f32需要显式进行指定 Rust中的f32和f64对应的就是IEEE-754标准中的单精度浮点数和双精度浮点数 4.1.3、布尔类型 布尔类型与其他语言是一样的也是true和false两个值并且仅占据一个字节 在条件表达式等控制语句中会有大量的出场 4.1.4、字符类型 字符类型用以描述单个字符 char类型占4个字节的空间并且是一个Unicode标量值 4.2、复合类型 在Rust当中复合类型表示将不同的类型组合为一个类型 在Rust当中提供了两种基础的复合类型 元组tuple数组array 4.2.1、元组类型 元组能够将多个不同类型的值组合进一个类型但是一旦声明结束便不可修改元素的数量 let tup: (i32, char, bool) (15, A, false); // 声明如果需要对于其中的元素进行访问可以使用解构的方式 let (a, b, c) tup; // 几个变量将和里面的元素对应上 比如a: 15, b: A, c: false除了解构的方式元组还可以支持使用.配合索引的方式对元组内部的元素进行访问 let tup: (i32, char, bool) (15, A, false); print!({}, tup.1); // 下标从0开始4.2.2、数组类型 数组有固定的长度而且数组中的各个元素必须为相同的类型 let list: [char; 3] [A, B, C]; // 前面是类型后面是长度 let zeros [0; 5]; // 长度为5都是0数组的声明可以使用[]根据类型和长度初始化也可以指定默认值和长度 数组的访问和其他语言也几乎没有什么不同 print!(元素2{}, zeros[1]);数组对应的是内存栈中一块连续的内存 另外提到数组就不得不说一个名为数组越界的问题 fn main() {let zeros [0; 5];print!(元素9{}, zeros[8]); // 必定越界 }将索引修改为一个没有的量无法访问到这样在程序执行的过程中会抛出panic进而中止了程序的运行 https://kaisery.github.io/trpl-zh-cn/ch03-01-variables-and-mutability.html   https://www.bilibili.com/video/BV1182ZYhEdV
http://www.pierceye.com/news/686057/

相关文章:

  • 怎样申请网站呢注册商标怎么注册商标
  • 网站地址英文不相关的网站做单项链接可以吗
  • 怎么做网站超链接wordpress 主题 设置
  • 手机电影网站建设如何做网站域名备案
  • 重庆手机网站推广价格网络营销论文参考文献
  • 如何给网站添加搜索关键字做流量网站有收入吗
  • 购物网站的英文如何不让百度收录网站
  • 上海定制网站建设公司哪家好建立公司官网
  • jsp电影网站开发教程滁州网站建设梦天堂
  • 网站建设哪个好一些网站服务器证书有问题
  • 广东省广州市白云区钟落潭镇优化什么建立生育支持政策体系
  • wordpress+代码质量哈尔滨百度seo代理
  • 北京模板网站建设全包中国招标与采购网官网
  • 戴尔公司网站建设成功的关键是什么永久网站
  • 上海青浦做网站做分销网站系统
  • 互联网公司网站建设的目的王烨演员
  • 网站开发图片加载慢如皋建设网站
  • 国家示范校建设成果网站wordpress文章图片alt
  • asp.net网站开发技术物流专线网站建设
  • 免费网站流量统计工具线下推广方法及策略
  • 西安市社交网站制作公司网站建设的参考文献
  • 企业网站内容建设网站开发小程序开发
  • 个人个案网站 类型wordpress群组
  • 微网站建设深圳英文站seo
  • 做网站要钱么网站建设备案多长时间
  • wordpress建站图片效果网站备案前置审批 成都
  • 哈尔滨网站关键词优化手机网站视频播放模板
  • 西安企业做网站贵州毕节建设局网站官网
  • 临沂网站定制室内设计师证书哪个含金量高
  • 国外做化工产品的网站湛江手机网站建设公司