我开始怀疑观看人数了,我觉得我猜得好不准ㄛ。我觉得会比较少人看得竟然会蛮多人看得@@
太扯了太扯
我现在在想之後打疫苗是不是没办法完成挑战QQ
身体加油R
今天要讲的是 trait 这是在 Rust 中要实现 OOP 物件导向程序设计的重要部件。
直接 Code 范例吧
trait Owo {
fn add(&self) -> i32;
fn reduce(&self) -> i32;
}
struct First {
x: i32,
y: i32,
z: i32,
}
impl Owo for First {
fn add(&self) -> i32 {
self.x + self.y + self.z
}
fn reduce(&self) -> i32 {
self.x - self.y - self.z
}
}
fn main() {
let a = First{
x: 5,
y: 3,
z: 2,
};
println!("{}", First::add(&a));
println!("{}", First::reduce(&a));
}
以上可以看到最简单的 trait 利用,那聪明的读者们可能已经想到了,这不是跟之前的 impl 能做到的事情没有任何区别吗,而且还增加了代码量
impl Second {
fn add(&self) -> i32 {
self.x + self.y + self.z
}
fn reduce(&self) -> i32 {
self.x - self.y - self.z
}
}
这是不用 trait 的写法,是不是少了很多东西呢
那接下来我来讲一下为甚麽要使用 trait
如果说定义了第二个叫做 Second 而他要实现的东西跟 First 一样
那这样一个一个看是不是很难去理解整段程序码,此时就能使用 trait 对这个规范进行一个限制,让他无法出现 trait 所绑定的以外的东西,就能够让整体的可读性变高。
那麽以上就是最简单的 trait 用法,然後需要知道的是很多套件都有使用 trait 来规范使用者使用该套件所以撰写时要特别注意。
那接下来讲甚麽呢,至少明天应该会讲多线程
只不过我还真的没想到 trait 这麽快就写完了 该水一下了
好啦在讲几个例子有关 Rust 的 std 库
先附连结:fs
在 Rust 中想要去撰写文字档或是开启文字档编辑之类的 STD 库就有内建给你了
fn create_file(s: String) {
File::create(&s).unwrap();
}
^这样就可以创建档案。
fn delete_file(s: String) -> std::io::Result<()>{
remove_file(&s)?;
Ok(())
}
^这样就可以删除档案,不过要记得的是,在以下情况会回传 Err
fn write_file(s: String, Name: String) -> std::io::Result<()>{
write(Name, s)?;
Ok(())
}
^撰写档案的部分
fn open_file(s: String) -> std::io::Result<()> {
let mut f = File::open(s)?;
let mut data = String::new();
f.read_to_string(&mut data)?;
println!("{}", data);
Ok(())
}
^ 开启档案
好了,今天差不多到这边吧,各位晚安 又灌...又灌...又...又灌水文章
最後来做个暴击效果吧 先改一下Actor,设定一下暴击率: Action: Sprite_Damag...
VS Code Extension外挂套件 在建立React应用程序之前,建议可先安装VS Code...
首先先来写id的使用 我们要做一个随机码id的用意是因为,如果我们需要去对特定的label做改变我们...
Day 16 - Android Studio 一个简单的计数器 上次我们大致介绍了Andorid ...
自我介绍 大家好,我是 Nick,15年开始接触 iOS App 的开发,在学习的过程中独立完成一...