数值类型

未匹配的标注

数值类型

整数

  1. 🌟

Tips: 如果我们没有显式的给予变量一个类型,那编译器会自动帮我们推导一个类型

`

// 移除某个部分让代码工作

fn main() {

let x: i32 = 5;

let mut y: u32 = 5;

y = x;

let z = 10; // 这里 z 的类型是? 

}

`

  1. 🌟

`

// 填空

fn main() {

let v: u16 = 38_u8 as __;

}

`

  1. 🌟🌟🌟

Tips: 如果我们没有显式的给予变量一个类型,那编译器会自动帮我们推导一个类型

`

// 修改 assert_eq! 让代码工作

fn main() {

let x = 5;

assert_eq!("u32".to_string(), type_of(&x));

}

// 以下函数可以获取传入参数的类型,并返回类型的字符串形式,例如 “i8”, “u8”, “i32”, “u32”

fn type_of(_: &T) -> String {

format!("{}", std::any::type_name::<T>())

}

`

  1. 🌟🌟

`

// 填空,让代码工作

fn main() {

assert_eq!(i8::MAX, __); 

assert_eq!(u8::MAX, __); 

}

`

  1. 🌟🌟

`

// 解决代码中的错误和 panic

fn main() {

let v1 = 251_u8 + 8;

let v2 = i8::checked_add(251, 8).unwrap();

println!(“{},{}”,v1,v2);

}

`

  1. 🌟🌟

`

// 修改 assert! 让代码工作

fn main() {

let v = 1_024 + 0xff + 0o77 + 0b1111_1111;

assert!(v == 1579);

}

`

浮点数

  1. 🌟

`

// 将 ? 替换成你的答案

fn main() {

let x = 1_000.000_1; // ?

let y: f32 = 0.12; // f32

let z = 0.01_f64; // f64

}

`

  1. 🌟🌟 使用两种方法来让下面代码工作

`

fn main() {

assert!(0.1+0.2==0.3);

}

`

序列Range

  1. 🌟🌟 两个目标: 1. 修改 assert! 让它工作 2. 让 println! 输出: 97 - 122

`

fn main() {

let mut sum = 0;

for i in -3..2 {

 sum += i

}

assert!(sum == -3);

for c in 'a'..='z' {

 println!("{}",c);

}

}

`

  1. 🌟🌟

`

// 填空

use std::ops::{Range, RangeInclusive};

fn main() {

assert_eq!((1..__), Range{ start: 1, end: 5 });

assert_eq!((1..__), RangeInclusive::new(1, 5));

}

`

计算

  1. 🌟

`

// 填空,并解决错误

fn main() {

// 整数加法

assert!(1u32 + 2 == __);

// 整数减法

assert!(1i32 - 2 == __);

assert!(1u8 - 2 == -1);

assert!(3 * 50 == __);

assert!(9.6 / 3.2 == 3.0); // error ! 修改它让代码工作

assert!(24 % 5 == __);

// 逻辑与或非操作

assert!(true && false == __);

assert!(true || false == __);

assert!(!true == __);

// 位操作

println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);

println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);

println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);

println!("1 << 5 is {}", 1u32 << 5);

println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

}

`

你可以在这里找到答案(在 solutions 路径下)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~