[Day7] struct 结构体

今天突然整个不知道要写什麽 @@
一定是礼拜六要上课的关系 ##


今天呢 就来讲讲有关於 Rust 的 struct 吧!

use std::io;

struct User {
    name: String,
    password: String,
    email: String,
}

fn main() -> io::Result<()>{
    let a = User {
        name: "Kent".to_string(),
        password: "123456".to_string(),
        email: "[email protected]".to_string()
    };
    let mut input_name = String::new();
    io::stdin().read_line(&mut input_name).unwrap();
    let mut input_password= String::new();
    io::stdin().read_line(&mut input_password).unwrap();
    println!("{:#}{:#}", input_name, input_password);
    if a.name.eq(&input_name.trim()) || a.password.eq(&input_password.trim()) {
        println!("Your Email is {:#}", a.email);
    }
    else {
        println!("Error Name or Password");
    }
    Ok(())
}

我趁着中午写了一点点的 Code 那我会逐步解释上面的东西
希望这种形式大家喜欢 ><

最上面的 use std::io 这是什麽意思呢?
std 就是标准库,然後我从中取出了一个区块因为後面输入会用到
但是其实也可以直接写完整路径,只是程序码会变得垄长,所以这里就先 use 他
下面能够看到我定义出了一个名为 User 的 Struct 里面会有 name password email
那後面我在 Main Function 中使用了此 Struct 并且命名为 a
可以发现 後面使用的时候就能直接取出原本定义的 a Struct 里头定义的东西。
後面就是输入的环节可以看到说使用了 io::stdin() 里面的 readline
在使用前先定义出一个空的字串然後在将他作为参数传入刚刚讲的 readline
那为什麽要 .unwrap 呢?
因为这个回传的会是一个 Result<T, E> 这个後面会详细说明,现在只要记得说这是为了避免错误而出现的筛选机制,(好像都讲完他的特色了)反正, .unwrap() 就是让他变成是非 Error 的那个
也能用 ? 来做简写
後面的话就是比较的部份

io::stdin().read_line(&mut input_password)?;

像这样
後面则是比较部份,我就直接使用内建的 eq 处理比较的部份
不过需要注意的是 readline会多读一个换行 所以使用 trim() 去除换行就能成功了。

所以以上提到了,怎麽定义 Struct 以及如何输入
那必然的 Struct 绝对不只於此其实他的定义也可以设为 tuple 元组,tuple是之前在讲函数时有讲到回传多项那边的东西,把多个变数包在一起。

struct tup(i32, i8);

那麽以上就是所有 Struct 的内容
明天我会提到 impl 算是 Rust 中的 Class 吧
标题每天都好难定 都觉得很俗QQ


<<:  LeetCode解题 Day11

>>:  DAY11 资料前处理-资料不平衡处理方法

Day10 - 敏捷式接案实践 (二) - 专案管理

当同时进行多个专案,每个专案又有上百个工作项目待执行的时候,看板方法可以非常有条理的呈现专案状态。我...

Day6 Python基础语法四

今天的影片内容为稍微困难的函式与类别 虽然有点小复杂,但弄清楚後对程序的编写将会有很大的帮助 以下为...

PHP 正则相关函数

PHP Regular expression 本来 PHP 支援两类 regular express...

创建App後半部界面

在已建设的登入界面与App主界面後,今天来建设App的後部分界面,也就是功能主要在的大部分,其中更分...

Day 20 - SwiftUI开发学习4(切换分页)

今天我们运用NavigationView去做切换视窗。 正文 建立新的页面 因为我们之前都是在主页去...