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

RustDay04------Exercise[01-10]

1.做题须知

这一题告诉我们可以尝试修改下面的输出,在觉得OK之后删除// I AM NOT DONE注释即可进入下一题

// intro1.rs
// About this `I AM NOT DONE` thing:
// We sometimes encourage you to keep trying things on a given exercise, even
// after you already figured it out. If you got everything working and feel
// ready for the next exercise, remove the `I AM NOT DONE` comment below.
// Execute `rustlings hint intro1` or use the `hint` watch subcommand for a hint.
//
// If you're running this using `rustlings watch`: The exercise file will be reloaded
// when you change one of the lines below! Try adding a `println!` line, or try changing
// what it outputs in your terminal. Try removing a semicolon and see what happens!// I AM NOT DONEfn main() {println!("Hello and");println!(r#"       welcome to...                      "#);println!(r#"                 _   _ _                  "#);println!(r#"  _ __ _   _ ___| |_| (_)_ __   __ _ ___  "#);println!(r#" | '__| | | / __| __| | | '_ \ / _` / __| "#);println!(r#" | |  | |_| \__ \ |_| | | | | | (_| \__ \ "#);println!(r#" |_|   \__,_|___/\__|_|_|_| |_|\__, |___/ "#);println!(r#"                               |___/      "#);println!();println!("This exercise compiles successfully. The remaining exercises contain a compiler");println!("or logic error. The central concept behind Rustlings is to fix these errors and");println!("solve the exercises. Good luck!");println!();println!("The source for this exercise is in `exercises/intro/intro1.rs`. Have a look!");println!("Going forward, the source of the exercises will always be in the success/failure output.");
}

2.基本输出

我们使用{:?}通配输出一下就好了

// intro2.rs
// Make the code print a greeting to the world.
// Execute `rustlings hint intro2` or use the `hint` watch subcommand for a hint.fn main() {println!("Hello {:?}!","world");
}

3.变量绑定

由于Rust里面的变量完全属于主人,所以我们需要使用let语句来对变量进行绑定

// variables1.rs
// Make me compile!
// Execute `rustlings hint variables1` or use the `hint` watch subcommand for a hint.fn main() {let x = 5;println!("x has the value {}", x);
}

4.变量类型

这一题告诉我们变量需要类型,给类型只需要我们对其赋值即可,rust会自动分配他的类型

// variables2.rs
// Execute `rustlings hint variables2` or use the `hint` watch subcommand for a hint.fn main() {let x=3;if x == 10 {println!("x is ten!");} else {println!("x is not ten!");}
}

5.指定变量类型

我们需要对变量初始化赋值才能使用,而且可以使用:i32指定变量为32位整数

// variables3.rs
// Execute `rustlings hint variables3` or use the `hint` watch subcommand for a hint.fn main() {let x: i32=3;println!("Number {}", x);
}

6.创建可变类型变量

不设置变量为可变类型,就会在改变时报错

// variables4.rs
// Execute `rustlings hint variables4` or use the `hint` watch subcommand for a hint.fn main() {let mut x = 3;println!("Number {}", x);x = 5; // don't change this lineprintln!("Number {}", x);
}

7.重新绑定(变量遮蔽)

当需要用一个变量读取不同类型的数据的时候 可以使用let+数据类型重新创建一个

// variables5.rs
// Execute `rustlings hint variables5` or use the `hint` watch subcommand for a hint.fn main() {let mut number = "T-H-R-E-E"; // don't change this lineprintln!("Spell a Number : {}", number);let number:i32= 3; // don't rename this variableprintln!("Number plus two is : {:?}", number );
}

8.常量申明

常量不仅仅默认不可变,而且自始至终不可变,因为常量在编译完成后,已经确定它的值。

常量使用 const 关键字而不是 let 关键字来声明,并且值的类型必须标注

// variables6.rs
// Execute `rustlings hint variables6` or use the `hint` watch subcommand for a hint.const NUMBER:i32 = 3;
fn main() {println!("Number {}", NUMBER);
}

9.书写函数

使用fn funName(){}来创建一个函数申明,然后在main函数里面调用

// functions1.rs
// Execute `rustlings hint functions1` or use the `hint` watch subcommand for a hint.fn call_me(){println!("Hello Rust");
}
fn main() {call_me();
}

10.函数传入形参需要指定类型

形参需要申明传入的变量的类型

// functions2.rs
// Execute `rustlings hint functions2` or use the `hint` watch subcommand for a hint.fn main() {call_me(3);
}fn call_me(num:i32) {for i in 0..num {println!("Ring! Call number {}", i + 1);}
}

相关文章:

RustDay04------Exercise[01-10]

1.做题须知 这一题告诉我们可以尝试修改下面的输出,在觉得OK之后删除// I AM NOT DONE注释即可进入下一题 // intro1.rs // About this I AM NOT DONE thing: // We sometimes encourage you to keep trying things on a given exercise, even // after you already figured …...

ARM day9

src/key_it.c #include "key_it.h" #include "led.h" void key_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);//设置PF9 PF7 PF8GPIO输入//PF9GPIOF->MODER & (~(0x3<<18));//PF8GPIOF->MODER & (~(0x3&l…...

【TensorFlow2 之013】TensorFlow-Lite

一、说明 在这篇文章中&#xff0c;我们将展示如何构建计算机视觉模型并准备将其部署在移动和嵌入式设备上。有了这些知识&#xff0c;您就可以真正将脚本部署到日常使用或移动应用程序中。 教程概述&#xff1a; 介绍在 TensorFlow 中构建模型将模型转换为 TensorFlow Lite训练…...

Java基础--阳光总在风雨后,请相信彩虹

1、今日任务 JAVA SE-韩顺平视频教程–30p以上&#xff08;今天得50p以上因为是基础&#xff09;计算机基础八股记忆总结刷题&#xff08;两题&#xff09;可以先用python 1、SSM ssm->Spring&#xff08;轻量级的文本开发框架&#xff09;/SpringMVC&#xff08;分层的w…...

高级网络调试技巧:使用Charles Proxy捕获和修改HTTP/HTTPS请求

今天我将与大家分享一种强大的网络调试技巧&#xff0c;那就是使用Charles Proxy来捕获和修改HTTP/HTTPS请求。如果您是一位开发人员或者网络调试爱好者&#xff0c;那么这个工具肯定对您有着很大的帮助。接下来&#xff0c;让我们一起来学习如何使用Charles Proxy进行高级网络…...

Discuz大气游戏风格模板/仿lol英雄联盟游戏DZ游戏模板GBK

Discuz大气游戏风格模板&#xff0c;lol英雄联盟游戏模板&#xff0c;DZ游戏娱乐模板GBK。模板名称&#xff1a;lol英雄联盟游戏&#xff08;m0398_lol&#xff09; 下载地址&#xff1a;https://bbs.csdn.net/topics/617408069...

206、SpringBoot 整合 RabbitMQ 的自动配置类 和 对应的属性处理类 的知识点

目录 ★ Spring Boot 为 RabbitMQ 提供的自动配置▲ 自动配置类&#xff1a;RabbitAutoConfiguration▲ 属性处理类&#xff1a;RabbitProperties相关配置 ★ AmqpAdmin的方法★ AmqpTemplate的方法代码演示创建一个springboot的项目。application.properties 配置属性 ★ Spri…...

网络链接失败怀疑是服务器处于非正常状态?如何用本地电脑查看服务器是否正常?

网络链接失败怀疑是服务器处于非正常状态&#xff1f;如何用本地电脑查看服务器是否正常&#xff1f; 网页会出现链接失败&#xff0c;可以实时用cdm大法&#xff0c;cdm可以更好的排查字节数据的返回&#xff0c;可以让我们更好的要检查服务器是否处于正常状态&#xff0c;接下…...

文件操作(打开关闭文件、文件顺序以及随机读写)

文章目录 写在前面1. 文件的打开与关闭1.1 文件指针1.2 文件的打开(fopen)与关闭(fclose)1.2.1 fopen函数1.2.2 fclose函数 2. 文件的顺序读写2.1. fgetc 和 fputc函数2.1.1 fputc函数2.1.2 fgetc函数 2.2 fgets 和 fputs函数2.2.1 fputs函数2.2.2 fgets函数 2.3 fscanf和fprin…...

HTTP 响应头 X-Frame-Options

简介 X-Frame-Options HTTP 响应头用来给浏览器一个指示。该指示的作用为&#xff1a;是否允许页面在 <frame>, </iframe> 或者 <object> 中展现。 网站可以使用此功能&#xff0c;来确保自己网站的内容没有被嵌套到别人的网站中去&#xff0c;也从而避免了…...

MongoDB 集群配置

一、副本集 Replica Sets 1.1 简介 MongoDB 中的副本集&#xff08;Replica Set&#xff09;是一组维护相同数据集的 mongod 服务。 副本集可提供冗余和高可用性&#xff0c;是所有生产部署的基础。 也可以说&#xff0c;副本集类似于有自动故障恢复功能的主从集群。通俗的讲就…...

random生成随机数的灵活运用

random返回的 [0,1) 之间的一个随即小数 思考&#xff1a;请写出获取 a-b 之间的一个随机整数&#xff0c;a,b均为整数&#xff0c;比如 a2 , b7 即返回一个数 x > [2,7]Math.random()*(b-a) 返回的就是 [0,b-a](int)(aMath.random()*(b-a1)) 》 (int)(2Math.random()*6) Ma…...

宏定义实现二进制数的奇偶位交换

思路分析 通过宏定义来实现二进制数的奇偶位交换&#xff0c;如果一个个遍历交换的话&#xff0c;那得算到猴年马月&#xff0c;这是我在网上看到的一个思路&#xff1a; 我们将每一位&#xff08;整数在计算机里存储是4字节&#xff0c;32位&#xff09;二进制数的奇数位保留…...

【ELK 使用指南】ELK + Filebeat 分布式日志管理平台部署

ELK和EFLK 一、前言1.1 日志分析的作用1.2 需要收集的日志1.3 完整日志系统的基本特征 二、ELK概述2.1 ELK简介2.2 为什么要用ELK?2.3 ELK的组件 三、ELK组件详解3.1 Logstash3.1.1 简介3.1.2 Logstash命令常用选项3.1.3 Logstash 的输入和输出流3.1.4 Logstash配置文件 3.2 E…...

传输层 | UDP协议、TCP协议

之前讲过的http与https都是应用层协议&#xff0c;当应用层协议将报文构建好之后就要将报文往下层传输层进行传递&#xff0c;而传输层就是负责将数据能够从发送端传到接收端。 再谈端口号 端口号(port)标识了一个主机上进行通信的不同的应用程序&#xff0c;在TCP/IP协议中&…...

Webmin(CVE-2019-15107)远程命令执行漏洞复现

漏洞编号 CVE-2019-15107 webmin介绍 什么是webmin Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作http://www.webmin.com/Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。是一个基于Web的界面…...

嵌入式实时操作系统的设计与开发 (前后台系统)

前后台结构 前后台系统也称为中断驱动系统&#xff0c;其软件结构的显著特点是运行的程序有前台和后台之分。 在后台&#xff0c;一组程序按照轮询方式访问CPU&#xff1b;在前台&#xff0c;当用户的请求到达时&#xff0c;首先向CPU触发中断&#xff0c;然后将该请求转交给后…...

Macos数字音乐库:Elsten Software Bliss for Mac

Elsten Software Bliss for Mac是一款优秀的音乐管理软件&#xff0c;它可以帮助用户自动化整理和标记数字音乐库&#xff0c;同时可以自动识别音乐信息并添加标签和元数据。 此外&#xff0c;Bliss还可以修复音乐库中的问题&#xff0c;例如重复的音乐文件和缺失的专辑封面等…...

基于SpringBoot的校园周边美食探索及分享平台的设计与实现

文章目录 项目介绍主要功能截图:登录注册个人信息管理后台首页轮播图管理美食鉴赏我的好友管理我的收藏管理用户管理部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给…...

GPT-4V的图片识别和分析能力

GPT-4V是OpenAI开发的大型语言模型&#xff0c;是GPT-4的升级版本。GPT-4V在以下几个方面进行了改进&#xff1a; 模型规模更大&#xff1a;GPT-4V的参数量达到了1.37T&#xff0c;是GPT-4的10倍。训练数据更丰富&#xff1a;GPT-4V的训练数据包括了1.56T的文本和代码数据。算…...

Rockchip Android 12编译踩坑记:手把手教你修改BoardConfig.mk生成userdata.img

Rockchip Android 12编译实战&#xff1a;从BoardConfig.mk修改到userdata.img生成的避坑指南 第一次在Rockchip平台上编译Android 12系统时&#xff0c;我遇到了一个令人抓狂的问题——编译过程看似顺利&#xff0c;但生成的固件烧写到设备后&#xff0c;系统始终无法正常启动…...

从拒稿到录用:一个生物医学工程研究生的UMB投稿实战复盘(含完整时间线与避坑点)

从拒稿到录用&#xff1a;一个生物医学工程研究生的UMB投稿实战复盘 第一次收到CIBM编辑部的秒拒邮件时&#xff0c;我正在实验室熬夜跑数据。屏幕上的"reject"字样像一盆冷水浇下来——这个被我寄予厚望的期刊&#xff0c;从投稿到拒稿只用了17天。作为生物医学工程…...

别再只盯着运放了:用跨阻放大器搞定光电传感器信号调理的完整指南

光电传感器信号调理实战&#xff1a;跨阻放大器设计与避坑指南 当你在昏暗的灯光下测试光电传感器时&#xff0c;是否曾被微弱的电流信号折磨得焦头烂额&#xff1f;作为嵌入式工程师&#xff0c;我曾在凌晨三点的实验室里&#xff0c;面对闪烁不定的示波器波形&#xff0c;才…...

Emotion2Vec+语音情感识别系统:5分钟快速部署,9种情绪一键分析

Emotion2Vec语音情感识别系统&#xff1a;5分钟快速部署&#xff0c;9种情绪一键分析 1. 系统介绍与核心价值 1.1 什么是Emotion2Vec Emotion2Vec是一款基于深度学习的语音情感识别系统&#xff0c;能够自动分析语音中蕴含的情绪状态。这个由科哥二次开发构建的镜像版本&…...

手把手教你配置:用微型纵向加密搞定IEC-104协议的风光数据安全上传

新能源场站IEC-104协议安全传输实战&#xff1a;微型纵向加密配置全指南 在新能源场站的自动化系统中&#xff0c;IEC-104协议作为电力行业标准通信规约&#xff0c;承担着风机、光伏逆变器与升压站之间关键运行数据传输的重任。然而&#xff0c;传统光纤环网中的明文传输方式存…...

解放双手!用Open-AutoGLM实现微信自动回复消息,亲测可用

解放双手&#xff01;用Open-AutoGLM实现微信自动回复消息&#xff0c;亲测可用 1. 为什么需要微信自动回复&#xff1f; 每天我们都会收到大量微信消息&#xff1a;工作群的通知、朋友的问候、家人的关心...但总有那么些时刻&#xff0c;我们无法及时回复&#xff1a; 开会…...

MediaPipeUnityPlugin技术解构与实战指南:Unity AI视觉开发进阶之路

MediaPipeUnityPlugin技术解构与实战指南&#xff1a;Unity AI视觉开发进阶之路 【免费下载链接】MediaPipeUnityPlugin Unity plugin to run MediaPipe 项目地址: https://gitcode.com/gh_mirrors/me/MediaPipeUnityPlugin 问题发现&#xff1a;Unity AI视觉开发的现实…...

零基础掌握开源工具:3步实现群晖Photos功能强化

零基础掌握开源工具&#xff1a;3步实现群晖Photos功能强化 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 当你面对海量照片却无法享受智能分类的便…...

纹理识别必备!5个高质量数据集下载与使用指南(附避坑技巧)

纹理识别实战指南&#xff1a;五大高价值数据集深度解析与应用技巧 纹理识别作为计算机视觉领域的重要分支&#xff0c;在工业质检、自动驾驶、医疗影像等场景中发挥着关键作用。但许多开发者在数据集获取和预处理阶段就会遇到各种"暗坑"——从下载链接失效到标注格式…...

告别沉闷AI工具:像素时装锻造坊带你体验RPG游戏式图像生成

告别沉闷AI工具&#xff1a;像素时装锻造坊带你体验RPG游戏式图像生成 1. 引言&#xff1a;当AI图像生成遇上复古RPG 你是否厌倦了传统AI工具单调的黑色界面和机械化的操作流程&#xff1f;像素时装锻造坊&#xff08;Pixel Fashion Atelier&#xff09;彻底改变了这一现状。…...