当前位置: 首页 > 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);}
}

http://www.lryc.cn/news/193619.html

相关文章:

  • ARM day9
  • 【TensorFlow2 之013】TensorFlow-Lite
  • Java基础--阳光总在风雨后,请相信彩虹
  • 高级网络调试技巧:使用Charles Proxy捕获和修改HTTP/HTTPS请求
  • Discuz大气游戏风格模板/仿lol英雄联盟游戏DZ游戏模板GBK
  • 206、SpringBoot 整合 RabbitMQ 的自动配置类 和 对应的属性处理类 的知识点
  • 网络链接失败怀疑是服务器处于非正常状态?如何用本地电脑查看服务器是否正常?
  • 文件操作(打开关闭文件、文件顺序以及随机读写)
  • HTTP 响应头 X-Frame-Options
  • MongoDB 集群配置
  • random生成随机数的灵活运用
  • 宏定义实现二进制数的奇偶位交换
  • 【ELK 使用指南】ELK + Filebeat 分布式日志管理平台部署
  • 传输层 | UDP协议、TCP协议
  • Webmin(CVE-2019-15107)远程命令执行漏洞复现
  • 嵌入式实时操作系统的设计与开发 (前后台系统)
  • Macos数字音乐库:Elsten Software Bliss for Mac
  • 基于SpringBoot的校园周边美食探索及分享平台的设计与实现
  • GPT-4V的图片识别和分析能力
  • 蓝桥杯(等差素数列,C++)
  • Ceph 中的写入放大
  • Mabatis-puls强于Mybatis的地方
  • vue项目npm intall时发生版本冲突的解决办法
  • tomcat多实例部署jenkins
  • 强连通分量+缩点
  • 如何做系统架构设计
  • L14D6内核模块编译方法
  • PyTorch入门教学——dir()函数和help()函数的应用
  • 使用Elasticsearch来进行简单的DDL搜索数据
  • 【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡