mac 汇编笔记
https://evian-zhang.github.io/learn-assembly-on-Apple-Silicon-Mac/index.html
共 31 篇文章
https://evian-zhang.github.io/learn-assembly-on-Apple-Silicon-Mac/index.html
为什么需要闭包? // 问题1:函数复用 // 没有闭包时,需要传入所有参数 fn add(x: i32, base: i32) -> i32 { x + base } // 有了闭包,可以部分应用 let base = 5; let add_five = |x| x + …
引用:你的快递地址和包裹 想象这样一个场景:你在网上买了个漂亮的花瓶,快递公司需要把它送到你家。快递员需要知道两个信息: 你家的地址(引用) 花瓶本身(值) 为什么我们需要引用? 让我们看一个具体的问题: fn calculate_length(s: String) -> usize { …
让我用这种方式来讲解 Rust 的函数式编程概念: 引入问题 想象这样一个场景:你需要处理一个电商系统的订单数据。要求: 过滤出金额大于 100 的订单 计算这些订单的总金额 给每个订单加上 10% 的折扣 传统的命令式编程可能是这样: let mut total = 0; for order in …
让我系统地分析 Rust 的生命周期: 问题场景: // 考虑这个场景:我们需要返回一个引用 fn longest(x: &str, y: &str) -> &str { if x.len() > y.len() { x } else { y } } // 编译错 …
从一个常见问题说起 看这段在其他语言中很普通的代码: fn main() { let data = vec![1, 2, 3]; process_data(data); println!("{:?}", data); // 编译错误! } fn process_data(v: …
从一个常见问题说起 假设你正在开发一个数据处理系统,需要对集合中的数据进行灵活的过滤和转换: let numbers = vec![1, 2, 3, 4, 5]; // 如何优雅地复用过滤逻辑? let even_numbers = ??? // 这里怎么写 let …
从一个实际问题开始 假设我们在写一个文件处理程序: fn read_config_file(path: &str) -> String { std::fs::read_to_string(path) // 这里会返回什么? } 这段代码看似简单,但隐藏着两个基本问题: 文件可能不存在 …
#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] 这是 Rust 语言中的属性宏(attribute macro)声明,用于自动为数据结构实现一些常用的特性(traits)。让我详细解释每个部分: derive - …
在 Rust WASM 中,有几种方式可以实现打印输出和调用浏览器特性: 使用 web_sys 和 wasm_bindgen 进行浏览器 API 调用: use wasm_bindgen::prelude::*; use web_sys::{console, window}; pub fn …