rust代码学习笔记(未完待续10/31)

news2024/9/21 14:36:17

文章目录

    • 一、案例一:读取输入打印出来
    • 二、案例二:(引入新包)猜数字游戏
    • 三、案例三:循环猜测数字
    • 四、案例四:猜字游戏(彩色版本)
    • 五、rust一些注意事项
      • 1)声明变量默认是不可修改的
      • 2)const定义常量,且必须加类型标注
      • 3)标量(scalar)和复合类型(compound)数据类型
    • 六、函数
    • 七、控制流程(if、else语句和while语句、for循环)

一、案例一:读取输入打印出来

fn main() {
    println!("Hello, world!");
    let mut guess = String::new();
    io::stdin().read_line(&mut guess).expect("error");

    println!("你打印的数字是  {}",guess);
}

二、案例二:(引入新包)猜数字游戏

cargo build 安装新包

①引入随机数包
在这里插入图片描述
②引入随机库
③源码

use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;

fn main() {

    let secret_num=rand::thread_rng().gen_range(1..101);

    println!("请输入你的猜测数字!");

    let mut guess = String::new();
    io::stdin().read_line(&mut guess).expect("error");
    let guess:i32 = guess.trim().parse().expect("请输出数字");

    match guess.cmp(&secret_num){
        Ordering::Less     =>println!("猜小了"),
        Ordering::Greater  =>println!("猜大了"),
        Ordering::Equal    =>println!("猜对了"),
    }

    println!("你输入的数字是  {}",guess);
    print!("秘密数字是:{}",secret_num);
}

三、案例三:循环猜测数字

use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;

fn main() {

    let secret_num=rand::thread_rng().gen_range(1..101);
    loop {
        println!("请输入你的猜测数字!");

        let mut guess = String::new();
        io::stdin().read_line(&mut guess).expect("error");
        let guess:i32 = match guess.trim().parse(){
            Ok(num)  =>num,
            Err(_)       =>continue,
        };
    
        match guess.cmp(&secret_num){
            Ordering::Less     =>println!("猜小了"),
            Ordering::Greater  =>println!("猜大了"),
            Ordering::Equal    =>{
                println!("猜对了");
                break;
            },
        }
    
        println!("你输入的数字是  {}",guess);
        print!("秘密数字是:{}",secret_num);
    }
}

四、案例四:猜字游戏(彩色版本)

use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;
use colored::*;

fn main() {

    let secret_num=rand::thread_rng().gen_range(1..101);
    loop {
        println!("请输入你的猜测数字!");

        let mut guess = String::new();
        io::stdin().read_line(&mut guess).expect("error");
        let guess:i32 = match guess.trim().parse(){
            Ok(num)  =>num,
            Err(_)       =>continue,
        };
    
        match guess.cmp(&secret_num){
            Ordering::Less     =>println!("{}","太小了!".red()),
            Ordering::Greater  =>println!("{}","太大了!".red()),
            Ordering::Equal    =>{
                println!("{}","猜对了!".green());
                break;
            },
        }
    
        println!("你输入的数字是  {}",guess);
        print!("秘密数字是:{}",secret_num);
    }
}

五、rust一些注意事项

1)声明变量默认是不可修改的

在这里插入图片描述
解决方法:(加mut关键词)
在这里插入图片描述

2)const定义常量,且必须加类型标注

    const UC_NUM:u32 = 1000;

3)标量(scalar)和复合类型(compound)数据类型

①整数类型
在这里插入图片描述
debug超出正常范围就会panicked,release模式下会超过最大值得数转回最小值

②字符类型
在这里插入图片描述
③浮点数
在这里插入图片描述
④复合类型tuple
在这里插入图片描述
取元素方式:(tuple元素从0开始,如下所示)
①解构
②点标记

在这里插入图片描述
⑤数组vector
下面byte数组表示初始化了8元素的数组,数组全为0
在这里插入图片描述

六、函数

在这里插入图片描述

在这里插入图片描述

七、控制流程(if、else语句和while语句、for循环)

在这里插入图片描述
用条件控制流程:
在这里插入图片描述
while语句控制:
在这里插入图片描述
for循环:
在这里插入图片描述

在这里插入图片描述
或(用范围循环):
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# 如何反射获取常量值

首先,常量是一个字段,所以需要从字段中获取该值。 但是需要传入的BindingFlags是什么,与其盲猜,不如直接反射所有字段值,查看其中的常量有哪些特性和bool值来判断。 ...static void Main(string[] args){var type typ…

禁止使用Lombok,在Lombok的加持下,“小狗”.equals(“老狗”) = true

目录 一、禁止使用Lombok1、jdk版本问题2、被迫营业3、可读性差 二、Lombok中的真实小坑三、看看编译后的代码,到底怎么回事1、编译class2、添加一个注解EqualsAndHashCode(callSuper true) 大家好,我是哪吒。 一、禁止使用Lombok 我有一个同学&#…

VASSAL 3.7.4 发布,开源棋牌游戏构建引擎

导读VASSAL Engine 3.7.4 版本现已发布。VASSAL 是一个游戏引擎,用于在线构建棋盘游戏和纸牌游戏,构建的游戏可在 Internet 上或通过电子邮件实时运行。 VASSAL Engine 可在所有平台上运行,是免费的开源软件。具体更新内容包括: …

【2024版】最新Nessus工具安装激活教程,三分钟手把手教会,非常简单!收藏这一篇就够了

Nessus工具介绍 Nessus号称是世界上最流行的漏洞扫描程序,而且它开源,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上…

护眼灯亮度多少合适?适合学生儿童的护眼灯推荐

为什么需要购买台灯?正常的顶灯不行吗? 正常顶灯的光照射到桌子上时,已经发散的差不多了,无法满足看书写字环境下的需要。 看书写字时人是要低头的,很容易挡住顶灯照射的光,桌上需要光的位置正好被挡住。…

如何为模型添加光照效果?

1、光照贴图的原理 光照贴图(Lightmap)是一种用于模拟光照效果的贴图技术。它通过将场景中的光照信息渲染到纹理图像中,然后将其应用到模型表面来实现对光照效果的模拟。光照贴图通常使用灰度图像来表示场景中的光照信息,白色表示…

让GPT替我写vue3代码,看的我血压升高

事情是这样子的,最近在写Vue3相关的代码,就想着能不能让GPT辅助我写代码,于是,我就先写了一个中文的prompt Prompt1: 使用vue3写一个用户登录的页面 分割线内部是GPT的回答: 使用 Vue 3 来创建一个用户登录页面需要涉…

编译源码时报错,程序包找不到

在编译源码时,出现了个问题,程序包找不到 原本这里是没有这个浮标的,无法打开点击,里面是空的,打开本地maven的库看找到相应的包也是没有问题的。 这里我尝试过删除相关文件,删除pom文件相关内容再次进行下…

Python数据可视化入门指南

Matplotlib和Plotly是两个在Python中广泛使用的数据可视化库,它们具有丰富的API和功能,用于创建各种类型的图表和图形。在本篇博客中,我们将介绍它们的主要特点和基本用法。 Matplotlib 主要特点: 高度自定义: Matp…

赋能制造业高质量发展,释放采购数字化新活力——企企通亮相武汉2023国际智能制造创新论坛

摘要 “为应对成本上升、供应端不稳定、供应链上下游协同困难、决策无数据依据等问题,利用数字化手段降本增效、降低潜在风险十分关键。在AI等先进技术发展、供应链协同效应和降本诉求等机遇的驱动下,采购供应链数字化、协同化成为企业激烈竞争的优先选…

Echats-自定义图表1

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh-cmn-Hans"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…

设置防火墙

1.RHEL7中的防火墙类型 防火墙只能同时使用一张,firewall底层调用的还是lptables的服务: firewalld:默认 &#xff0c;基于不同的区域做规则 iptables: RHEL6使用&#xff0c;基于链表 Ip6tables Ebtables 2.防火墙的配置方式 查看防火墙状态: rootlinuxidc -]#systemct…

计算机视觉 计算机视觉识别是什么?

计算机视觉识别&#xff08;Computer Vision Recognition&#xff09;是计算机科学和人工智能领域中的一个重要分支&#xff0c;它致力于使计算机系统能够模拟和理解人类视觉的过程&#xff0c;从而能够自动识别、分析和理解图像或视频中的内容。这一领域的发展旨在让计算机具备…

原生JS 表格列拖拽 适用JqGrid

js $(function () {var d1 new dragTable();d1.init({tabel: .drag-table}); })function dragTable() {this.disX 0; // 相对按下的位置移动的距离this.outX 0; // 鼠标按下的点到大盒子边上的距离this.lanX 0; // 拖动到的位置this.$createDiv null;this.$createDivBg …

Java面向对象(进阶)特征之二:继承性

文章目录 一、继承的概述&#xff08;1&#xff09;生活中的继承&#xff08;2&#xff09; Java中的继承1、角度一&#xff1a;从上而下2、角度二&#xff1a;从下而上 &#xff08;3&#xff09;继承的好处&#xff08;4&#xff09;总结 二、继承的语法与应用举例&#xff0…

vue3引入并加载unity工程的两种方式

1、使用unity-webgl插件 npm i unity-webglunity打包后的build文件夹是这样的 需要手动删除.unityweb这个后缀&#xff0c;完成后放在vue3项目的根目录下的public文件夹下。 下面是引入unity的vue组件,其中实例化UnityWebgl时的参数地址直接引用上面的对应文件地址 <scri…

Soul CEO张璐团队创新技术与用户共建,推动网络社交空间绿色发展

近年来,随着互联网社交成为青年人交友的主要方式之一,网络黑灰产业也随之蓬勃发展,新型网络犯罪层出不穷,给用户的安全带来了巨大挑战。为了维护用户的社交安全,国家相关部门不断开展着"净网"、"清朗"等专项行动。在这个背景下,Soul App的CEO张璐及其团队积…

一招教你,如何快速搭建属于自己的AI数字人直播系统!

随着AI技术的不断发展&#xff0c;AI数字人直播系统成为了直播行业的新宠。本文将向大家介绍如何在短时间内快速搭建AI数字人直播系统&#xff0c;并寻找合适的服务商进行OEM合作&#xff0c;为用户带来全新的直播体验。 这边有2种方法你可以选择代理加盟可靠的AI数字人直播系统…

【Java 进阶篇】Java BeanUtils 使用详解

Java中的BeanUtils是一组用于操作JavaBean的工具&#xff0c;它允许你在不了解JavaBean的具体内部结构的情况下&#xff0c;访问和修改其属性。本文将详细介绍Java BeanUtils的使用&#xff0c;包括如何获取和设置JavaBean的属性&#xff0c;复制属性&#xff0c;以及如何处理嵌…

VS Code 全局搜索代码变量名时,有些文件中有这个变量但是没有被搜索到的问题

可以打开visual studio code&#xff0c;打开文件->首选项->设置&#xff0c;去掉 Use Ignore Files 这个选项。