app开发定制公司Rust——猜数游戏、数据类型、函数、循环和if条件表达式

目录


一.数据类型

(一).基础类型

类型含义类型含义
i88位intu8无符号8位int
i3232位intu32无符号~
i6464位intu64无符号~
i128128位intu128无符号~
isizeapp开发定制公司与机器位数有关usize无符号~
f3232位浮点型f6464位浮点型
strapp开发定制公司字符串类型String类比c++STL中string

(二).进制

进制形式
10进制20
2进制0b0001 0100
8进制0o24
16进制0x14

(三).复合类型 

①tuple

类比c语言struct。

使用方式:

  1. fn main() {
  2. let st:(i32, u32, String, f64) = (-500, 500, String::from("hello Rust"), 3.14);
  3. println!("{}", st.0);
  4. println!("{}", st.2);
  5. let (x, y, z, w) = st.clone();//深拷贝
  6. println!("{}", z);
  7. }

②数组

app开发定制公司既可以接收i32之类,也可以接收String之类类型。

使用方式,大致4种:

  1. let arr1 = [1, 2, 3, 4];
  2. let arr2 = ["hello", "Rust", "World"];
  3. // [类型; 个数]
  4. let arr3:[String; 3] = [String::from("hello"), String::from("Rust"), String::from("World")];
  5. // [数据;个数]
  6. let arr4 = [3;5];//let arr4 = [3, 3, 3, 3, 3];

二.函数

fn是函数的关键字,用以声明函数。

不关心函数声明位置,在调用位置之后也可以。

返回值:

有返回值时,“{”前必须加"-> 返回类型"

Rust不用特意写return返回,默认函数最后一个函数作为返回,必须没有分号,如果最后一句带有分号相当于不返回任何数据。

也可以使用return来显式返回。

  1. fn main() {
  2. let ret = sum(1, 2);
  3. println!("{}", ret);
  4. }
  5. fn sum(a: i32, b: i32) -> i32
  6. {
  7. println!("进入sum函数");
  8. a + b
  9. }

三.循环和if

(一).if

使用方式与C语言类似。

if在使用时可以不加括号"()"。

判断条件必须是bool类型,不支持隐式类型转换。

例:

  1. fn main() {
  2. let i = 3;
  3. if (i == 0) {}//正确
  4. if i == 3 {}//正确
  5. if i {}//错误
  6. }

(二).loop

loop默认死循环,直到遇见时跳出循环,并可以返回一个值。 

  1. fn main() {
  2. let mut num = 5;
  3. let ret = loop{
  4. if num == 0 {
  5. break String::from("Hello Rust");
  6. }
  7. num -= 1;
  8. };
  9. println!("{}", ret);
  10. }

(三).while

使用与C语言类似,但是没有"()"。

  1. fn main() {
  2. let mut num = 5;
  3. while num > 0{
  4. println!("{}", num);
  5. num -= 1;
  6. }
  7. }

(四).for

for的使用与C++范围for类似,同样不加"()"。

  1. /*
  2. (1..6)是一个range类型,范围是左闭右开,
  3. .rev()是该类型的一个方法,用于反转range。
  4. */
  5. fn main() {
  6. for i in (1..6).rev(){
  7. println!("{}", i);
  8. }
  9. let arr:[i32;5] = [1, 2, 3, 4, 5];
  10. for i in arr.iter(){
  11. println!("{}", i);
  12. }
  13. }

四.猜数游戏

随机生成一个数字供玩家猜测,直到猜中为止,并提示玩家是否继续玩。

  1. use std::io;
  2. use rand::Rng;
  3. use std::cmp::Ordering;
  4. fn main()
  5. {
  6. loop{
  7. let mut Rand_Num = rand::thread_rng().gen_range(1..101);//获取随机数
  8. loop{
  9. println!("请猜一个数字");
  10. let mut guess = String::new();
  11. io::stdin().read_line(&mut guess);
  12. //match暂时可以类比switch
  13. let guess: u32 = match guess.trim().parse(){ //判断输入数字是否是u32类型
  14. Ok(num) => num,//是u32,num给guess
  15. Err(_) => continue, //不是,更新输入
  16. };
  17. match guess.cmp(&Rand_Num){ //数字比较
  18. Ordering::Less=>println!("小了"),
  19. Ordering::Greater=>println!("大了"),
  20. Ordering::Equal=>{
  21. println!("正确,就是{}", Rand_Num);
  22. break;
  23. }
  24. }
  25. }
  26. println!("是否继续玩? y/n");
  27. let mut key = String::new();
  28. io::stdin().read_line(&mut key);
  29. match key.trim().to_lowercase().as_str(){//string转成str类型
  30. "y" => continue,
  31. "n" => break,
  32. &_ => todo!(),//异常退出
  33. }
  34. }
  35. }

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发