草庐IT

rust-analyzer

全部标签

【unity实战】使用unity制作一个类似Rust的3D生存建造建筑系统,具有很好的吸附性(附项目源码)

文章目录先看看最终效果配置连接点配置不同状态不同颜色的材质连接器控制建造系统代码效果源码参考完结先看看最终效果配置连接点配置不同状态不同颜色的材质连接器控制publicclassConnector:MonoBehaviour{[Header("连接器位置")]publicConnectorPositionconnectorPosition;[Header("连接器所属建筑类型")]publicSelectedBuildTypeconnectorParentType;[Header("是否可以连接地面")]privateboolcanConnectToFloor=true;[Header("是否

Rust 的风,终究还是吹到了前端

前几天有一个叫做Rolldown的工具悄悄开源了,做前端开发的同学可能已经了解到了。我写这篇文章时是晚上,看到star数量是4.6k,而在这一天的上午我打开这个仓库的时候应该是3.7k。开源作者正是前端大佬,Vue创始人尤雨溪。要说这个工具有什么特点吗?那可能有这么几个特点:使用Rust语言编写;性能更好,当然也得益于第1点;主要开发者都是前端程序员,而且还有很多贡献者也是前端开发者。当然了,对于大佬们来说,语言只是实现功能的一个工具,用哪个都可以;Rolldown是什么Rolldown是一个用Rust编写的JavaScriptbundler,旨在未来作为Vite中的bundler使用。现在写

如何使用Rust Tokio处理文件及其局限性

Rust的Tokio库以其高效处理异步I/O的能力而闻名,使其成为构建高性能应用程序的热门选择。但是,在某些情况下,Tokio可能无法提供显著的优势,例如在处理读取大量文件时,在这个特定的上下文中,与使用普通线程池相比,Tokio可能不是最佳的解决方案。这种限制源于这样一个事实,即操作系统通常缺乏异步文件api,从而削弱了Tokio在文件读取任务中的潜在优势。值得注意的是,Tokio在异步上下文中表现出色,例如网络操作。如果你需要在异步上下文中读取文件,特别是在网络上下文中,Tokio是首选,因为它与异步工作流无缝集成。然而,对于性能和便利性至关重要的同步文件读取任务,坚持使用同步api可能会

速度惊人,Rust 使 Python 函数速度提高 5000%

大家好,我是渔夫。大家都知道,Rust因其卓越的性能和安全性,正被越来越多的科技巨头采用,甚至白宫也推荐开发者使用Rust来构建关键软件。今天,来深入学习一下,如何利用Rust来大幅提升你的Python代码性能!寻找第N个质数,Python实现下列,编写一个Python函数来寻找第N个质数。defis_prime(num):#检查一个数字是否为质数。ifnumpythonprime_finder.py50当我在终端中执行命令时,获得的响应如下所示。寻找第N个素数,Rust实现fnis_prime_rust(num:u32)->bool{ifnumu32{letmutcount:u32=0;le

30天拿下Rust之字符串

概述        在Rust中,字符串是一种非常重要的数据类型,用于处理文本数据。Rust的字符串是以UTF-8编码的字节序列,主要有两种类型:&str和String。其中,&str是一个对字符数据的不可变引用,更像是对现有字符串数据的“视图”,而String则是一个独立、可变更的字符串实体。&str和String        &str和String是Rust中两种主要的字符串类型,它们在以下6个方面存在比较明显的区别。        所有权和可变性        &str:是Rust核心语言中唯一的字符串类型,它是一个不可变的字符串切片,是对字符串数据的引用,并不拥有数据的所有权。&st

Vue 团队正式开源 Rolldown:基于 Rust 的超快 JavaScrip 打包工具!

3月8日,Vue团队正式开源了其对外公布已久的打包工具:Rolldown,它是使用Rust开发的Rollup替代品,提供了与Rollup兼容的API和插件接口,但在功能范围上将更接近Esbuild。本文就来详细了解一下Rolldown背后的故事!图片都有Rollup了,为什么还需要Rolldown?Rolldown旨在成为Vite未来使用的核心底层打包工具,与常见的开箱即用的构建工具(如Webpack、Vite等)不同,它更加专注于底层的打包逻辑和核心功能,以满足Vite对于高效打包的特定需求。图片目前,Vite的底层使用了两个打包工具:Esbuild:Esbuild是一款高性能的 JavaS

Rust 写脚手架,Clap你应该知道的二三事

有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在新的赛道弯道超车。但是,苦于各种原因,迟迟找不到入门之法。确实如她们所言,Rust由于学习路径比较陡峭,加之和前端语言可以说是交集很少。然后,给大家一种学了马上就会忘记的感觉。并且,由于现在Rust在前端领域的应用少之又少。除了字节跳动的Rspack,还有Vivo的VivoBlueOS(我们在国货之光?用Rust编写的VivoBlueOS有过介绍),就很少听说其他国内互联网公司有相关的产品和应用。相比国外,我们的道路还

Go不能写,但是可以用Rust写的三段代码!

在这篇文章中,要分享的例子不仅仅是假设,它们来自于工作中的真实案例,在这些例子中,Go的局限性无法实现所需的解决方案。声明:这里的区别并不在于Rust代码比Go代码更正确或更快。1.读取线程的ID记录当前线程的ID,或者在Go的情况下,记录协程ID,是非常有用的。它明确了哪个线程正在做什么。如果没有这些信息,每个线程的活动就会交织在一个日志文件中,因此很难跟踪单个执行流。在Rust中,获取线程id就像这样简单:letid=thread::current().id();然而,Go并不公开协程id。Go故意不公开协程id,以阻止开发人员对线程本地存储进行编程。对于想要理解日志的开发人员必须求助于其

30天拿下Rust之切片

概述        在Rust中,切片是一种非常重要的引用类型。它允许你安全地引用一段连续内存中的数据,而不需要拥有这些数据的所有权。切片不包含分配的内存空间,它仅仅是一个指向数据开始位置和长度的数据结构。切片是对数组的一个连续引用,它提供了一种方便、高效的方式来操作数组的一部分。切片本身并不拥有数据,它只是原始数组的一个视图,因此创建切片通常是一个低开销的操作。切片的声明        在Rust中,切片的声明格式如下。letslice_name:[T;n]=&array[start..end];        下面,我们详细介绍切片声明中的各个元素。        slice_name:切

30天拿下Rust之箱、包和模块

概述        Rust语言使用模块系统来组织工程和代码。模块系统允许我们将相关的函数、类型、常量等组织在一起,形成一个逻辑上的单元。通过模块系统,我们可以隐藏实现细节,只暴露必要的接口,从而提高代码的可读性和可维护性。Rust的模块系统还支持路径依赖和重导出等功能,使得代码的组织更加灵活和方便。        Rust的模块系统中有三个非常重要的概念,分别是:箱(Crate)、包(Package)和模块(Module),下面逐一进行介绍。箱(Crate)        箱,英文为Crate,是Rust中的编译单元和构建单元,也是Cargo打包和分发的基本单位。Crate可以是库(libr