Rust 编程小技巧摘选(8)

这篇具有很好参考价值的文章主要介绍了Rust 编程小技巧摘选(8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rust 编程小技巧摘选(8),Rust,rust,开发语言,后端

目录

Rust 编程小技巧(8)

1. 取整函数 floor()

2. 取整函数ceil()

3. 取整函数  round()

4. 保留小数位数

5. 字符串转整数

unwrap()

unwrap_or()


Rust 编程小技巧(8)

1. 取整函数 floor()

floor函数对浮点数进行向下取整

示例代码:

fn main() {
    let x: f32 = 3.23;
    let s = x.floor();
    println!("{}", s);
}

 输出:

3

2. 取整函数ceil()

ceil函数对浮点数进行向上取整

示例代码:

fn main() {
    let x: f32 = 3.23;
    let s = x.ceil();
    println!("{}", s);
}

 输出:

4

3. 取整函数  round()

round函数对浮点数进行四舍五入取整

示例代码:

fn main() {
    let x: f32 = 3.23;
    let s = x.round();
    println!("{}", s);

    let x: f32 = 3.63;
    let s = x.round();
    println!("{}", s);
}

 输出:

3
4

4. 保留小数位数

使用以上三个取整函数达成目标:

fn main() {
    let mut x: f32 = 3.1415926;
    let s = format!("{:.4}", x);
    println!("{}\n", s);

    let s = (x * 10000.0).round() / 10000.0;
    println!("{}", s);
    let s = (x * 10000.0).ceil() / 10000.0;
    println!("{}", s);
    let s = (x * 10000.0).floor() / 10000.0;
    println!("{}\n", s);

    x = 3.1415333;
    let s = (x * 10000.0).round() / 10000.0;
    println!("{}", s);
    let s = (x * 10000.0).ceil() / 10000.0;
    println!("{}", s);
    let s = (x * 10000.0).floor() / 10000.0;
    println!("{}", s);
}

5. 字符串转整数

unwrap()

用于从 Result 对象中获取 Ok 值。如果 Result 对象是 Err,则会直接调用 panic! 来引发一个运行时错误。

示例代码:

fn main() {
    let s = "123";
    let i = s.parse::<i32>().unwrap();
    println!("{:?}", i);
 
    let s = "12x3";
    let i = s.parse::<i32>();
    println!("{:?}", i);
}

输出:

123
Err(ParseIntError { kind: InvalidDigit })

unwrap_or()

用于从 Result 对象中获取值,如果 Result 对象是 Err,则返回一个默认值。

示例代码:

fn main() {
    let s = "123";
    let i: i32 = s.parse().unwrap_or(0);
    println!("{:?}", i);

    let s = "12x3";
    let i = s.parse().unwrap_or(0);
    println!("{:?}", i);
}

输出:

123
0

匹配模式: let ... match

fn main() {
    let s = "123";
    let i = match s.parse::<i32>() {
        Ok(i) => i,
        Err(_e) => -1,
    };
    println!("{:?}", i);
 
    let s = "12x3";
    let i = match s.parse::<i32>() {
        Ok(i) => i,
        Err(_e) => -1,
    };
    println!("{:?}", i);
}

输出:

123
-1 

附:match语法

是一种模式匹配工具,用于根据值的特征进行多分支比较。它的基本语法如下:

match value {  
    pattern1 => result1,  
    pattern2 => result2,  
    ...  
    _ => resultN,  
}
这里的value是要被匹配的值,可以与各个模式进行比较。如果value符合某个模式,则执行对应的result。如果所有模式都不符合,最后的那个_ => resultN会被执行。

模式可以是任何可能被匹配的值或模式。例如,可以使用变量来捕获模式中的值,或者使用范围模式来匹配特定的值。

let number = 3;  
match number {  
    1 => println!("Number is 1"),  
    2 => println!("Number is 2"),  
    3 => println!("Number is 3"),  
    _ => println!("Number is not 1, 2, or 3"),  
}
在这个例子中,number的值是3,因此它与第三个模式匹配,并打印出"Number is 3"。

另外,还可以使用范围模式,例如:

let number = 5;  
match number {  
    1..=5 => println!("Number is between 1 and 5"),  
    _ => println!("Number is not between 1 and 5"),  
}
在这个例子中,number的值是5,因此它与第一个模式匹配,并打印出"Number is between 1 and 5"。


相关阅读:

Rust 编程小技巧摘选(1)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(2)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(3)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(4)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(5)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(6)_Hann Yang的博客-CSDN博客

Rust 编程小技巧摘选(7)_Hann Yang的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-651086.html

到了这里,关于Rust 编程小技巧摘选(8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust 编程小技巧摘选(4)

    使用 std::fs 模块 Rust 的 std::fs 模块提供了许多方便的函数,可以用于读写文件和目录。使用 std::fs 可以避免使用不安全的 C 函数,提高代码的可读性和可维护性。 使用 lazy_static 宏 lazy_static 宏可以用于定义全局静态变量,该变量的值只会在首次使用时计算。这可以避免不必要

    2024年02月14日
    浏览(36)
  • Rust编程语言入门之Rust的面向对象编程特性

    Rust 受到多种编程范式的影响,包括面向对象 面向对象通常包含以下特性:命名对象、封装、继承 “设计模式四人帮”在《设计模型》中给面向对象的定义: 面向对象的程序由对象组成 对象包装了数据和操作这些数据的过程,这些过程通常被称作方法或操作 基于此定义:

    2023年04月21日
    浏览(38)
  • 【Rust 基础篇】Rust FFI:连接Rust与其他编程语言的桥梁

    Rust是一种以安全性和高效性著称的系统级编程语言,具有出色的性能和内存安全特性。然而,在现实世界中,我们很少有项目是完全用一种编程语言编写的。通常,我们需要在项目中使用多种编程语言,特别是在与现有代码库或底层系统交互时。为了实现跨语言的互操作性,

    2024年02月15日
    浏览(38)
  • Rust编程语言入门之高级特性

    不安全 Rust 高级 Trait 高级 类型 高级函数和闭包 宏 隐藏着第二个语言,它没有强制内存安全保证:Unsafe Rust(不安全的 Rust) 和普通的 Rust 一样,但提供了额外的“超能力” Unsafe Rust 存在的原因: 静态分析是保守的。 使用 Unsafe Rust:我知道自己在做什么,并承担相应风险

    2023年04月24日
    浏览(38)
  • Rust编程语言入门之无畏并发

    Concurrent:程序的不同部分之间独立的执行(并发) Parallel:程序的不同部分同时运行(并行) Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug的情况下易于重构 注意:本文中的”并发“泛指 concurrent 和 parallel 在大部分OS里,代码运行在进程(process)中,OS同时

    2023年04月19日
    浏览(57)
  • Rust编程语言入门之智能指针

    指针:一个变量在内存中包含的是一个地址(指向其它数据) Rust 中最常见的指针就是”引用“ 引用: 使用 借用它指向的值 没有其余开销 最常见的指针类型 智能指针是这样一些数据结构: 行为和指针相似 有额外的元数据和功能 通过记录所有者的数量,使一份数据被多个

    2023年04月16日
    浏览(38)
  • Rust编程语言入门之模式匹配

    模式是Rust中的一种特殊语法,用于匹配复杂和简单类型的结构 将模式与匹配表达式和其他构造结合使用,可以更好地控制程序的控制流 模式由以下元素(的一些组合)组成: 字面值 解构的数组、enum、struct 和 tuple 变量 通配符 占位符 想要使用模式,需要将其与某个值进行

    2023年04月22日
    浏览(79)
  • 如何在 macOS 上安装 Rust 编程语言

    安装Rust编程语言在Mac上是一个相对简单的过程,但它可能会涉及多个步骤。在本文中,我将详细说明如何在Mac上安装Rust,并提供一些常见问题的解决方法。请注意,由于软件和工具可能会发生变化,因此建议首先查看Rust官方网站以获取最新的安装说明。 目录 1.打开终端 2

    2024年02月01日
    浏览(43)
  • 【跟小嘉学 Rust 编程】十七、面向对象语言特性

    【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学 Rust 编程】六、枚举

    2024年02月10日
    浏览(76)
  • 【编程】Rust语言入门第4篇 字符串

    Rust 中的字符是 Unicode 类型,因此每个字符占据 4 个字节内存空间,但字符串不一样,字符串是 UTF-8 编码,也就是字符串中的字符所占的字节数是变化的(1 - 4)。 常见的字符串有两种: str,通常是引用类型, str ,即字符串字面常量,字符串切片。 std::string::String 类型 str 的变

    2024年02月20日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包