Rust bin 文件比较差异

rust 复制代码
use std::collections::HashSet;
use std::fs::File;
use std::io::prelude::*;

fn main() {
    let file_1 = "test.bin";
    let file_2 = "test2.bin";
    let mut fd_1 = File::open(file_1).expect("open file_1 error");
    let mut fd_2 = File::open(file_2).expect("open file_2 error");
    let mut buffer_1: Vec<u8> = Vec::new();
    let mut buffer_2: Vec<u8> = Vec::new();
    fd_1.read_to_end(&mut buffer_1).expect("read error from test.bin");
    fd_2.read_to_end(&mut buffer_2).expect("read error from test2.bin");
    let set1: HashSet<_> = buffer_1.iter().cloned().collect();
    let set2: HashSet<_> = buffer_2.iter().cloned().collect();
    let union: HashSet<_> = set1.union(&set2).cloned().collect();
    let diff: Vec<u8> = union.into_iter().collect();
    println!("diff test.bin with test2.bin: {:?}", diff);
}

有没有 python 的味道
一样的编译器,这个味道就不一样了
还不用担心内存安全的问题
这也是为什么 rust 进入内核的原因,优秀的表达能力
平替 C
Rust 同时迭代 两个数组

相关推荐
1024小神1 分钟前
在 Swift 中,参数标签(argument label),用于在调用函数时提高代码的可读性。
前端
朝新_2 分钟前
【统一功能处理】从入门到源码:拦截器学习指南(含适配器模式深度解读)
数据库·后端·mybatis·适配器模式·javaee
John_Rey6 分钟前
API 设计哲学:构建健壮、易用且符合惯用语的 Rust 库
网络·算法·rust
勤奋的小小尘7 分钟前
第六篇: Rust 中的"静态方法"(关联函数)
rust
joker学java8 分钟前
el表达式jstl和我们的js都是什么时候使用
前端
勤奋的小小尘8 分钟前
第七篇: Rust 多线程与并发编程详解
rust
晴殇i8 分钟前
前端极速性能优化:从加载到渲染的全链路实战指南
前端·javascript
joker学java8 分钟前
el,js,jstl什么时候进行混用
前端
AAA阿giao10 分钟前
JavaScript 深拷贝全解析:从栈与堆内存机制到安全对象复制实践
前端·javascript·json
Keya11 分钟前
鸿蒙Next系统手机使用Charles配置证书并抓包教程
前端·harmonyos