风骚语言Rust
文章平均质量分 82
程序饲养员
这个作者很懒,什么都没留下…
展开
-
Rust中的Fn、FnMut 和 FnOnce都有什么区别?
Fn要求只能只能捕获环境变量,而FnMut不但捕获环境变量还需要修改环境变量,所以Fn一定能满足FnMut的条件。同样的,FnOnce要求拿到环境变量的所有权,如此一来,不管是Fn还是FnMut都是在没有所有权的基础上运行的,有了所有权那就是能无所无能了。它表示闭包可以捕获其环境变量的所有权。,这是一个免费专栏,有需要的朋友可以自助获取哦,也可以关注我的公众号“程序饲养员”获取最新动态。表示闭包可以捕获其环境变量的可变引用。这意味着闭包可以修改其环境变量的值。它表示闭包可以捕获其环境变量的不可变引用。原创 2024-02-18 22:26:57 · 667 阅读 · 0 评论 -
Rust中不可变变量与const有何区别?
如果你初次学习编程语言,变量会是一个比较抽象的概念。以Rust语言来说,声明一个变量就是申请一块内存,内存的大小由变量的类型决定,类型我们会在后面的课程介绍。我们使用let关键字声明一个变量a,同时把abc存放到变量里面。此时,我们可以说变量中存储了abc,也可以说这块内存中存储了abc。具体怎么来理解呢?内存就像这个鸡蛋收纳盒, 我们为每一个蛋格编码(这个编码就相当于内存地址)。声明一个变量a,相当于找到一个空格把它叫做a,同时把鸡蛋放到这个空格里面。原创 2024-02-16 08:41:46 · 1023 阅读 · 2 评论 -
Rust编译过程讲解与环境准备
目前主流编译平台有,GNU、MSVC、LLVM。因为rustc调用了llvm,因此我们以LLVM为例,我们从C语言的编译过程聊,再对比Rust,看它们的编译过程有何差异。原创 2024-01-23 20:52:11 · 1450 阅读 · 3 评论 -
Rust 模块化:深入了解 Rust 中的代码组织
模块化是对代码一层一层的封装。`面向对象`语言中提供的`class`也算是一种模块化技术,有些语言使用`namespace`定义的`命名空间`也是一种模块化技术,让我们看看Rust中的模块化是如何设计的。原创 2024-01-03 10:01:08 · 528 阅读 · 1 评论 -
学Rust不学Cargo,等于没学Rust:features特性详解
在 Rust 中,Cargo 的 "features" 是一种机制,允许你在编译你的 crate 时选择不同的配置选项。这样可以在一个 crate 中提供多个功能,并根据需要选择性地启用或禁用这些功能。原创 2023-12-30 11:15:39 · 449 阅读 · 1 评论 -
如何使用Rust进行系统编程?
在 Rust 中,要调用系统调用并与底层 C 函数进行交互,通常会使用 `libc` crate。`libc` 提供了 Rust 到 C 的 FFI(Foreign Function Interface)绑定,允许 Rust 代码调用和使用底层的 C 函数和系统调用。原创 2023-12-28 09:22:06 · 441 阅读 · 1 评论