Jabbi的Rust学习日记(二)

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

特征:

        就目前我学习到的rust知识来看,我认为rust有以下几个特征:

  • 链式调用
  • 表达式
  • 强类型

use

        使用use导入包,我觉得rust的导包和python的很像

main

        main函数是rust可执行程序最先执行的代码,可以说是程序的入口,在golang中也是,我学过的语言好像都是这样

        这个println好像不是函数,因为加了 ‘ ! ’听说是叫宏的一个东西,目前还不知道,后续应该会学习到

fn main(){
    println!("hello rust");
}

let

        let是rust给变量赋值?看了rust圣经,准确来说好像应该是绑定,rust中的变量存在两个概念

可变变量,不可变变量

        可变变量: let mut guess = String::new();

        mut是声明其为可变

        不可变:同理就是少个mut

区别:不可变变量除了声明的时候能够绑定值,其余时刻不能,可变变量则可以

rust中的输入输出 

        需要导入包std::io,没导入调用io时候要加入std::

io::stdin().read_line(&mut guess).
    expect("error happend");

 expect

        expect是rust中的一个错误处理

        read_line()会返回一个io::Result,这是一个枚举enum类型,返回ok或者err,expect就是为了捕获错误,如果返回ok则执行接下来的代码,类似panic,会直接结束进程

match 

        有点像golang以及其他语言的switch,可以对枚举值进行switch,比如上面的错误处理就可以用match进行更加优雅的处理,毕竟直接panic有点不够健壮

        这是最后代码的截断,类似这种处理,这里的=> 有点类似golang中switch的 : ?

let guess:u32 = match guess.trim().parse(){
        Ok(num) => num,
        Err(_) => {
            println!("error happen");
            continue;
        },
    };

 cmp

        cmp是变量的一个方法,可以直接调用,但是比较的话要用相同类型,emmm

        rust中的变量类型有点迷,是真的会变,值会变,类型也会变,好智能

        cmp可能需要导入这个包std::cmp::Ordering,Ordering也是个枚举类型包含大于小于等于,用于match的时候使用

loop

        循环,目前还没有深入学习 

例子

下面是一个例子:猜数字文章来源地址https://www.toymoban.com/news/detail-701469.html

use rand::Rng;#用于生成随机数
use std::io;
use std::cmp::Ordering;



fn main() {
    println!("Hello, world!");

    let secret_number = rand::thread_rng().
    gen_range(1, 101);
    println!("secret_number is:{}",secret_number);
    
    loop {
        let mut guess = String::new();// 将guess绑定一个字符串变量
    println!("input a number:");
    io::stdin().read_line(&mut guess).// 输入数字
    expect("error happend");

    println!("the guess number is:{}",guess);
    let guess:u32 = match guess.trim().parse(){// 将guess的值转化为整型重新绑定
        Ok(num) => num,
        Err(_) => {
            println!("error happen");
            continue;
        },
    };
    // expect("parse error:type u32");
    match guess.cmp(&secret_number){// 前面说的match cmp
        Ordering::Less => println!("To small"),
        Ordering::Greater => println!("To large"),
        Ordering::Equal =>{
            println!("success");
            break;
        },
    }
}
}

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

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

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

相关文章

  • Rust软件外包开发语言的特点

    Rust 是一种系统级编程语言,强调性能、安全性和并发性的编程语言,适用于广泛的应用领域,特别是那些需要高度可靠性和高性能的场景。下面和大家分享 Rust 语言的一些主要特点以及适用的场合,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公

    2024年02月12日
    浏览(51)
  • Rust 程序设计语言学习——基础语法

    Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。 Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。Rust 的编译器是在 MIT License 和 Apache License 2.0 双重协议声明下的免费开源软

    2024年01月22日
    浏览(52)
  • 【从零开始的rust web开发之路 一】axum学习使用

    第一章 axum学习使用 本职java开发,兼架构设计。空闲时间学习了rust,目前还不熟练掌握。想着用urst开发个web服务,正好熟悉一下rust语言开发。 目前rust 语言web开发相关的框架已经有很多,但还是和java,go语言比不了。 这个系列想完整走一遍web开发,后续有时间就出orm,还

    2024年02月12日
    浏览(54)
  • 【rust语言】rust多态实现方式

    学习rust当中遇到了这个问题,记录一下,不对地方望指正 多态是面向对象程序设计中的一个重要概念,指同一个行为或操作在不同实例上具有不同的行为或结果。简单来说,多态就是指同一种类型的对象,在不同的上下文中有不同的行为。多态性使得程序可以更加灵活、可

    2024年02月11日
    浏览(46)
  • C语言和Rust语言的互相调用(2)(Rust调用C)

    1.创建项目 rust调用c方式挺多的,这里采用最通俗易懂的方法,用构建脚本进行构建整个项目。 2.编辑build.rs的内容 这里的build.rs:若要创建构建脚本,我们只需在项目的根目录下添加一个 build.rs 文件即可。这样一来, Cargo 就会先编译和执行该构建脚本,然后再去构建整个项

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

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

    2024年02月15日
    浏览(55)
  • Rust 笔记:Rust 语言中的字符串

    Rust 笔记 Rust 语言中的字符串 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 邮箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/130876665 【介绍】:本文介绍 Rust 语言中的字符和字符串的用法。 上一节:《 Rust 语言中使用 vector(向

    2024年02月06日
    浏览(53)
  • Rust 笔记:Rust 语言中的常量与变量

    Rust 笔记 Rust 语言中的常量与变量 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 邮箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/130875912 【介绍】:本文介绍 Rust 语言中的常量与变量。 上一节:《 上一节标题 》 | 下一节:《

    2024年02月06日
    浏览(60)
  • Rust语言从入门到入坑——(5)Rust 所有权

    主要介绍Rust所有权的知识,涉及到变量的作用域,内存释放机制,移动,克隆,引用等知识,很多知识是Rust语言特有机制。 所有权有以下三条规则: - Rust 中的每个值都有一个变量,称为其所有者。 - 一次只能有一个所有者。 - 当所有者不在程序运行范围时,该值将被删除

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

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

    2023年04月21日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包