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

news/2024/11/23 5:17:34/

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);}
}


http://www.ppmy.cn/news/1159863.html

相关文章

基于AT89C52+ADC0809+LCD1602的模数转换实验ptoteus仿真设计

一、仿真原理图: 二、仿真效果图: 三、仿真工程: 基于AT89C52ADC0809LCD1602的模数转换实验ptoteus仿真设计资源-CSDN文库

js实现拖拽功能

基于onMouseDown 、onMouseMove 、onMouseUp 使用 mousedown、mousemove 和 mouseup 事件来实现拖拽的基本思路是: 在 mousedown 事件中,开始追踪拖拽操作并记录鼠标按下的位置。 在 mousemove 事件中,根据鼠标的移动,更新被拖拽…

在C++和Python的项目中使用ROS

如果搜索如何使用ROS,搜索结果肯定是先建立工作空间,在创建功能包等等步骤,但其实不需要这么麻烦。 在Python中使用ROS,只需要在Pycharm的Project Structure中的Add Content Root加入ros的packages就可以了,如下图 在…

数据结构之手撕链表(讲解➕源代码)

0.引言 我们在学习过顺序表之后,会发现两点不是很优秀的操作: 1.顺序表的头插和中间的插入: 非常麻烦,需要不断的覆盖数据。 2.动态开辟空间: a.一般动态开辟的空间都是以2倍的形式开辟,当…

网格大师如何把b3dm转为osgb格式?

答:在网格大师的倾斜数据处理工具中选中“3DTiles转OSGB”,设定数据输入路径和输出路径提交任务即可。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一,重叠区域处理问题的工具“百宝箱”,集格式转换、坐标转…

SpringBootCMS漏洞复现分析

SpringBootCMS,极速开发,动态添加字段,自定义标签,动态创建数据库表并crud数据,数据库备份、还原,动态添加站点(多站点功能),一键生成模板代码,让您轻松打造自己的独立网站&#xff…

算法练习14——除自身以外数组的乘积

LeetCode 除自身以外数组的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&a…

LeetCode 2906. 构造乘积矩阵【前后缀分解,数组】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…