- 2025-01-08rust学习十六.1、并发-乱弹和一个简单并发例子
如书本作者所言,并发编程在绝大部分语言中,都是相对复杂和困难的。所以,涉及的内容会相对多一些,所涵盖的内容绝对不是几篇文章所可以容纳的。权当一个乱弹琴!和此系列的其它文章一样,本文的内容绝大部分来自于相关书籍,本人做了一些摘裁的工作,取我所需! 一、无畏并发*1.并发(con
- 2025-01-08【Rust自学】11.3. 自定义错误信息
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)11.3.1.添加错误信息在11.2.断言(Assert)中我们学习了assert!、assert_eq!和assert_ne!这三个宏,而这篇文章讲的就是它的进阶用法。这三个宏是可以添加自定义错
- 2025-01-07【Rust】从 Node.js 开发者的视角深入理解 Rust 的所有权与借用机制
Rust的所有权(Ownership)与借用(Borrowing)机制是其区别于其他编程语言的核心特性,也是保障内存安全的重要基石。在本文中,我们将从熟悉Node.js的开发者视角出发,探讨Rust如何通过这些独特的设计实现高效可靠的内存管理,并对比JavaScript的垃圾回收机制,帮助您更容易理解这些概念。
- 2025-01-07rust学习十五.5、引用循环和内存泄露
这个章节主要是为了引出弱引用这个奇怪的概念。说实在,这个没有什么太好写的,因为内容比较晦涩难懂! 在其它语言中,也常常存在所谓循环引用问题,和大部分问题一样,在其它语言中这些基本上都不是问题。但是在rust中,这是一个致命的问题。 例如有a,b两个点,a指向b,b指向a。如果根据截
- 2025-01-07【Rust自学】11.1. 编写和运行测试
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)11.1.1.什么是测试在Rust里一个测试就是一个函数,它被用于验证非测试代码的功能是否和预期一致。在一个测试的函数体里通常执行3个操作:准备(Arrange)数据/状态运
- 2025-01-07【Rust自学】11.2. 断言(Assert)
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)11.2.1.使用assert!宏检查测试结果assert宏来自标准库,用来确定某个状态是否为true。这个宏可以接收一个返回类型为布尔类型的表达式:当assert!内的值为true时测试
- 2025-01-07Rust在前端领域有哪些应用?
Rust在前端领域的应用正逐渐扩展,并以其高性能和安全性受到开发者的关注。以下是一些Rust在前端开发的典型应用:高性能的WebAssembly:Rust可以编译成WebAssembly,这是一种现代Web浏览器支持的二进制代码格式。通过WebAssembly,Rust编写的程序能在浏览器中作为原生代码运行,显著提升
- 2025-01-07说说你对Rust的了解?
关于Rust在前端开发中的应用和了解,我可以从以下几个方面进行阐述:一、Rust语言特性Rust是一种系统编程语言,它提供了内存安全、并发性和高性能等关键特性,这些特性使得Rust在前端开发中也有其独特的应用价值。内存安全:Rust通过所有权系统和借用检查器在编译时捕获许多常见的内存
- 2025-01-07你觉得前端开发人员有必要学习Rust吗?
对于前端开发人员是否有必要学习Rust,这个问题可以从多个角度进行分析。首先,从性能优势的角度来看,Rust确实具有吸引力。作为一种编译型语言,Rust能编译成高效的机器码,提供接近于C/C++的性能。在处理复杂的数据计算或图像处理等需要高性能处理的前端项目中,Rust可以发挥重要作用。此
- 2025-01-07你有使用过Rust写过什么应用吗?
是的,我使用过Rust进行前端开发,具体来说,我主要利用Rust在以下几个方面的优势来构建前端应用:高性能的WebAssembly编译:Rust可以编译成WebAssembly,这是一种在现代Web浏览器中运行的二进制代码格式。通过这种方式,Rust编写的程序能够在浏览器中以原生代码的形式运行,从而极大地提高了
- 2025-01-05rust学习十五.4、Rc和RefCell指针
一、前言作为初学者,在只学习了前面几个章节的时候,我以为rust的所有权规则和它说的是一样的。但实际上,rust发明人并没有遵循这个规则。按照我的想法,应该是因为如果坚持那样可能编写某些代码会太痛苦,甚至可能根本无法实现。“可能根本无法实现”这是一个没有去证实的猜想。不过,
- 2025-01-03一文解秘Rust如何与Java互操作
使用场景JAVA与Rust互操作让Rust可以背靠Java大生态来做更多事情,而Java也可以享受Rust语言特性的内存安全,所有权机制,无畏并发。互操作的典型场景包括:性能优化:利用Rust处理计算密集型任务,提高Java应用的整体性能。系统级编程:结合Rust的底层控制能力与
- 2025-01-01Rust里面的内部可变性
1.Cellusestd::cell::Cell;#[derive(Debug)]structSomeStruct{regular_field:u8,special_field:Cell<u8>,}fnmain(){letmy_struct=SomeStruct{regular_field:0,special_field:Cell::new(1),};println!(&q
- 2024-12-31spring boot迁移计划 第Ⅰ章 --chapter 1. rust hyper 结合rust nacos-client开发nacos网关 part ④ nacos-client
1.toml依赖nacos_rust_client="0.3"local_ipaddress="0.1"2.代码//todo维护实时服务列表,用来在请求到来时选择转发至具体的服务usestd::sync::Arc;uselog::debug;usenacos_rust_client::client::{naming_client::{Instance,InstanceDefaultList
- 2024-12-31spring boot迁移计划 第Ⅰ章 --chapter 1. rust hyper 结合rust nacos-client开发nacos网关 part ③ toml配置文件
1.toml依赖toml="0.8"2.代码由于项目还未完成,部分配置(如数据库等)还未增加,后续更新增加uselog::info;useserde::Deserialize;usestd::{fs,sync::LazyLock};usecrate::init::constant::*;//创建全局静态配置文件staticCONFIG:LazyLock<Config>=LazyL
- 2024-12-31Rust f64详解
一、Rust中的f64类型与IEEE754双精度浮点数Rust中的f64类型是一个双精度浮点数类型,它严格遵循IEEE754双精度标准。这意味着f64类型在Rust中的存储和表示方式与IEEE754双精度浮点数完全一致。二、存储格式f64类型由64位二进制数表示,分为以下三部分:1.符号位(1位):位置:第
- 2024-12-31rust学习十五.3、智能指针相关的Deref和Drop特质
一、前言智能指针为什么称为智能指针?大概因为它所包含的额外功能。这些额外的功能使得编码或者运行时让指针看起来更有效、并体现某些“智”的特征,所以,我猜测这应该是rust发明人这么称呼此类对象为智能的原因。 据前面有关章节所述,我们知道智能指针多基于结构体(struct)扩
- 2024-12-30【Rust自学】8.4. String类型 Pt.2:字节、标量值、字形簇以及字符串的各类操作
8.4.0.本章内容第八章主要讲的是Rust中常见的集合。Rust中提供了很多集合类型的数据结构,这些集合可以包含很多值。但是第八章所讲的集合与数组和元组有所不同。第八章中的集合是存储在堆内存上而非栈内存上的,这也意味着这些集合的数据大小无需在编译时就确定,在运行时它们
- 2024-12-28Rust和C/C++相关调用总结
一.Windows下Rust与C/C++互相调用1.C/C++调用rust1.1动态库调用1.1.1以LoadLibrary方式显示调用add.rs#[no_mangle]//防止Rust修改函数名pubextern"C"fnhello_world(){println!("HellofromRust!");}#[no_mangle]pubextern"C"fnadd(a:i32,b:i3
- 2024-12-28在lalrpop的官方教程中有这样一行代码`lalrpoprscalculator.lalrpopcalculator.rs`,你来解释一下它的作用
UUUUUUUUUUUUUUUUUU在lalrpop的官方教程中,lalrpoprscalculator.lalrpopcalculator.rs这行代码可能会让人有些困惑。实际上,它是一个命令行命令,用来调用lalrpop工具来处理.lalrpop文件,并生成相应的Rust代码。让我们逐步解析这行代码:1.lalrpoplalrpop是一个Rust库
- 2024-12-28报错信息中出现了 error: unexpected token: `::` 似乎是不能解析`::`
processingfile`/root/EuclidOLAP/olap-core/src/parser.lalrpop`/root/EuclidOLAP/olap-core/src/parser.lalrpop:24:10:24:11error:unexpectedtoken:`::`---stderrToken::Keyword("&00000000".to_string())~~LALRPO
- 2024-12-27rust的几种闭包类型
前提知识:rust里面有move,copy,clone。所有对象都有一个类型,具体所有权。比如#[derive(Debug)]structComplex{real:f64,imag:f64,}fnmain(){leta=Complex{real:1.,imag:2.};letb=a;println!("{:?}",a);println!("{:?}",b);}会
- 2024-12-27rust学习十五.1、智能指针基本概念
本文没有什么需要特别详细阐述的内容,基本都是一些基础性的概念和一些空洞的定义。一、基本概念指针-拥有一个指向一个堆数据的地址的变量。本身是变量,但其数据就是一个地址。智能指针-一种特别的指针(也是变量),除了指向数据的地址,通常还具有元数据和其它功能。智能指针通常使
- 2024-12-25用rust写了一个桌面小游戏,希望大家体验
使用rust的游戏框架Bevy写了一个桌面游戏《推十点半》。地址https://github.com/davelet/poker-of-ten-half/releases/tag/release-0.1。没有打包,因为还在初期,只是能简单玩。所以需要下载到本地通过cargorun来体验。之前用fltk-rs写的json处理工具也希望大家体验:https:/
- 2024-12-24【Rust自学】6.2. Option枚举
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)6.2.1.什么是Option枚举它定义于标准库中,在Prelude(预导入模块)中,负责描述这样的场景:某个值有可能存在,是哪种数据类型,或者就是不存在6.2.2.Rust没有Null在大部分