×

rust

Rust中Box、Rc、Arc、Cell、RefCell、Cow简介

源码代售 源码代售 发表于2024-06-30 浏览8156 评论0
一、Box 是一种独享所有权智能指针,类似C++的unique_ptr 资源分配在堆上,依靠Deref和Drop来管理堆上的资源,零运行时开销,是最常用的套娃。 Box::new(v): 创建,移动语义,独占所有权 - move,允许使用*转移本体所有权 不可变借用:Box::borrow()、Box::as_ref()、Box::deref() 可变借用:Box::borrow_mut()、Box::as_mut()、Box::deref_mut() 二、Rc是一种共享所有

rust

Rust中的channel (RUST中的小型直升飞机和大型直升飞机)

Vincent沈卫庆 Vincent沈卫庆 发表于2024-06-28 浏览6934 评论0
1. std::sync::mpsc::channel 支持多Sender,仅支持1个Receiver,可保证接收消息的顺序与发送的顺序一致。 pub fn channel<T>() -> (Sender<T>, Receiver<T>) 会创建新的async channel,返回的是sender/receiver对。 所有经由Sender发送的数据顺序,与 在Receiver端收到的数据顺序是一致的。 没有任何send操作可阻塞线程,该cha

rust

Rust 并发编程基础:第三方并发模型(rust异步编程)

若客 若客 发表于2024-06-28 浏览5834 评论0
线程安全 线程安全指的是在有多个线程执行或访问的时候,不会有意外的行为发生。也就是说,多个线程 读取 到的数据是一致的,而多个线程写入时候不会出现数据损坏。 Rust 仅保护用户不会出现数据竞争问题,但并不能保证不会出现死锁。 死锁某种意义上属于业务逻辑层面的错误,很难被发现,可以借助 parking_lot 程序库来解决这个问题。 Rust 避免数据竞争的方法是通过组合 trait 来进行约束,spawn 的声明是这样的: pub fn spawn<F, T>(f: F)

rust

idea搭建rust开发环境,解决不识别Rust工程的解决办法

莫兮`2 莫兮`2 发表于2024-06-26 浏览7175 评论0
Rust 是一个由Mozilla主导开发的通用编译型编译语言。它的设计准则为"安全,并发,实用",支持函数式,并发式,过程式以及面向对象的编程风格。 Rust插件的主要特性如下: 导航特性:Go to Class、Go to Symbol、Go to Super Module、Structure、Go to Definition。 编辑器特性:代码自动完成、格式化(计划支持rustfmt)、合并行、智能按键(如自动插入匹配的符号)、自动填充后缀、基本的Intention和重构(如引入变量、

rust

Databend 社区积极拥抱 Rust 生态(202111回顾)

天才 天才 发表于2024-06-24 浏览6590 评论0
Databend 旨在成为一个 开源、弹性、可靠 的无服务器数仓,查询快如闪电,与 弹性、简单、低成本 的云服务有机结合。数据云的构建,从未如此简单! Databend 对 Rust 社区的意义 Databend 的团队成员大多有丰富的数据库/数据平台开发及开源协作经验。我们选用 Rust 来开发高性能、高可靠的下一代数据云服务。 打造 Rust 数仓领域的头号种子选手,展示 Rust 的魅力,推动 Rust 在数据库领域的进一步应用。 持续推动 Rust 在数据治理/数据库/云原生

rust

️前端研发的新基础设施 - Rust ️

Serien01 Serien01 发表于2024-06-21 浏览7211 评论0
作者:伍林辉(五灵)     阿里交付技术团队 最开始关注到 Rust 🦀️,是因为 Atom 团队放弃维护 Atom,转身投入到一个新的轻量级、更快的编辑器 Zed 的开发,而这个编辑器最大的特点就是将全部基于 Rust 来构建。而为什么基于 Rust 来开发可以更快呢,这成功吸引了我的好奇心,也是写这篇文章的原因。 这两年 Rust 正在快速占领前端基础设施领域,Webpack、Babel、Prettier 这些热门工具都已有了 Rust 替代方案,且性能有着 10~10

rust

Rust学习2(rust教学)

杨聪 杨聪 发表于2024-06-21 浏览4988 评论0
Rust初步入门 变量与可变性 声明变量使用let的关键字 默认情况下,变量是不可变得(明明叫变量却不可变,,醉了) 通过mut关键字声明可变 虽说Rust变量是不可变类型,但是毕竟是变量。在Rust中是有常量的概念的: 使用const声明的的量是常量,不可被mut关键词修饰 常量的类型必须被标注清楚 常量可以在任何作用域内声明, 包括全局作用域 //一个例子的demo fn main(){ let x:u8 = 5; let mut x:&

rust

Rust 不同方式创建Arc对象性能对比

羊毛 羊毛 发表于2024-06-21 浏览6754 评论0
背景 在C++(C++11)中有了移动语义后,标准库中的很多容器都实现了原地构建对象的接口, 例如 vector::emplace_pack。 得益于此,在适当的场合下,可以大量减少临时对象的创建和对象拷贝, 从而提升程序性能。因此想到rust应该也有类似的机制, 来避免不必要的对象创建和拷贝开销。 C++移动语义:将一个右值(比如一个临时对象表达式)传给一个函数的时候,是优先绑定到参数形式是右值引用的函数上的 测试验证 以Arc对象创建为测试例子: + 创建临时变量,传入临时变量创

rust

Rust vs. Go:为什么他们在一起更好(rust VS go)

My My 发表于2024-06-20 浏览6042 评论0
Rust vs. Go:为什么他们在一起更好 Rust vs. Go:为什么他们在一起更好 虽然很多人可能认为 Rust 和 Go 是竞争激烈的编程语言,但 Rust 和 Go 团队都不这么认为。恰恰相反,我们的团队非常尊重其他人正在做的事情,并将这些语言视为对整个软件开发行业现代化共同愿景的补充。 在本文中,我们将讨论 Rust 和 Go 的优缺点,以及它们如何相互补充和支持,以及我们对于何时使用两种语言最合适的建议。 企业发现了采用这两种语言的价值,以及它们的互补价值。为了