Rust从入门到实战系列二:基本类型

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

fn main() {
let x: i32 = 5;
let mut y: u32 = 5;
y = x;
let z = 10; // 这 里 z 的 类 型 是?
}
// 填 空
fn main() {
let v: u16 = 38_u8 as __;
}

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::())
}
// 填 空 , 让 代 码 工 作
fn main() {
assert_eq!(i8::MAX, __);
assert_eq!(u8::MAX, __);
}
// 解 决 代 码 中 的 错 误 和 panic
fn main() {
let v1 = 251_u8 + 8;
let v2 = i8::checked_add(251, 8).unwrap();
println!(“{},{}”,v1,v2);
}
// 修 改 assert! 让 代 码 工 作
fn main() {
let v = 1_024 + 0xff + 0o77 + 0b1111_1111;
assert!(v == 1579);
}

浮点数

fn main() {
let x = 1_000.000_1; // ?
let y: f32 = 0.12; // f32
let z = 0.01_f64; // f64
}

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

assert!(0.1+0.2==0.3);
}
序列Range

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

let mut sum = 0;
for i in -3..2 {
sum += i
}
assert!(sum == -3);
for c in 'a'..='z' {
println!("{}",c);
}
}

// 填 空

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

计算

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);
}
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值