从 Rust 开始

【Rust】从零开始安装Rust Cargo、RustC、RustUp和其他命令将添加到Cargo的bin目录中,位于:%CARGO_HOME%\.cargo\bin,然后,通过修改HKEY_CURRENT_USER/environment/path注册表项,将此路径添加到path环境变量中。Rustup元数据和工具链将安装到Rustup主目录中,位于:%RUSTUP_HOME%\.rustup,可以使用环境变量RUSTUP_HOME进行修改。如果想修改它们的安装位置,请在安装前修改它们的值,如果没有相应的环境变量,则新建即可。 阅读详情

Rust 是由 Mozilla Research 开发并得到庞大开源社区支持的编程语言。它的开发始于 2006 年,由语言设计师 Graydon Hoare 启动。Mozilla 从 2009 年开始赞助 Rust,并在 2010 年首次正式推出。此后的工作经历了多次迭代,最终在 2015 年初推出了第一个稳定的生产版本 1.0.0,该版本由 Rust 项目开发者团队开发,包括 Mozilla 的 Rust 团队和超过 1800 名贡献者的开源社区。自那以后,Rust 以稳定的速度发展,目前的稳定版本为 1.20.0。

Rust 基于清晰和坚固的原则。它是一种系统编程语言,与 C 和 C++ 在能力上不相上下。它在速度上可以与惯用的 C++ 相媲美,但它通过禁止可能导致内存问题而引起程序崩溃的代码,让你以更安全的方式工作。此外,它使得在多核机器上的并发编程和并行执行在没有垃圾回收的情况下也是内存安全的——它是唯一能做到这一点的语言。从设计上看,Rust 消除了通过并发访问导致的共享数据的腐败,称为数据竞争。

Rust 的优势

Mozilla 是一家以开发工具推动开放标准网络而闻名的公司,最著名的是其旗舰浏览器 Firefox。如今,包括 Firefox 在内的每个浏览器都是用 C++ 编写的,Firefox 的代码行数为 1,29,00,992 行,Chrome 的代码行数为 44,90,488 行。这使它们运行迅速,但本质上是不安全的,因为 C 和 C++ 允许的内存操作没有经过有效性检查。如果代码编写不够严格,开发者的最高编程纪律缺失,程序崩溃、内存泄漏、段错误、缓冲区溢出和空指针都可能在程序执行时发生。其中一些可能导致严重的安全漏洞,这在现有浏览器中太常见了。Rust 从一开始就设计为避免这类问题。

与 C 或 C++ 相比,在编程语言光谱的另一端,我们有 Haskell,它被广泛认为是一种非常安全可靠的语言,但在内存分配和其他硬件资源的控制方面几乎没有或根本没有控制。我们可以将不同的语言按照这种控制即安全的轴线排列,似乎当一种语言像 Java 比 C++ 更安全时,它就会失去底层控制。反之亦然;像 C++ 这样提供更多资源控制的语言在安全性上提供的要少得多。

img

Rust 的制胜之道是提供:

  • 通过其强大的类型系统和智能编译器实现高安全性
  • 对低级资源的深入但安全控制(与 C 或 C++ 同样多),因此它运行接近硬件

其主网站 http://www.rust-lang.org/en-US/ 包含安装说明、文档和 Rust 社区的链接。

Rust 让你精确地指定值在内存中的布局和内存的管理方式;这就是它在控制和安全线的两端都能做得好的原因。这是 Rust 的独特卖点,它打破了在 Rust 之前存在于编程语言之间的安全性-控制二分法。有了 Rust,它们可以一起实现,而不会丧失性能。

Rust 无需垃圾回收就能实现这两个目标,这与大多数现代语言如 Java、C#、Python、Ruby、Go 等不同。事实上,Rust 甚至还没有垃圾收集器(尽管正在设计一个可选的垃圾收集器)。

Rust 是一种编译语言:严格的安全规则由编译器强制执行,因此它们不会造成运行时开销。因此,Rust 可以使用非常小的运行时,因此它可以用于实时或嵌入式项目,并且可以轻松地与其他语言或项目集成。

Rust 适合对性能和底层优化很重要的开发人员和项目,但也需要一个安全稳定的执行环境。该语言的健壮性特别适合需要这一点的项目,从而减轻了维护周期的压力。此外,Rust 还将许多高级函数式编程技术添加到语言中,使它同时感觉像是低级和高级语言。

Rust三合一特性 - 安全、快速和支持并发

Rust并不是一种革命性的语言,它没有引入前沿的新特性,但它融合了许多老旧语言中的经过验证的技术,并在C++的安全编程设计上进行了大幅改进。

Rust的开发者旨在设计一种通用多范式语言;与C++相似,它是一种命令式、结构化和面向对象的语言。除此之外,它在一方面借鉴了很多函数式语言的特点,另一方面又融入了并发编程的先进技术。

变量的类型是静态的(因为Rust是编译型语言)且强类型的。然而,与Java或C++不同,开发者不必为所有事物指定类型;Rust编译器在许多情况下能够推断出类型。

C和C++应用程序以其常常导致程序崩溃或内存泄漏的问题而闻名,这些问题极难调试和解决。想想悬空指针、缓冲区溢出、空指针、段错误、数据竞争等等。Rust编译器(称为rustc)非常智能,能够在编译代码时检测到所有这些问题,从而在执行期间保证内存安全。这是由编译器完成的,它完全控制内存布局,但不需要垃圾收集的运行时负担。当然,安全性也意味着对安全漏洞的可能性大大减少。

Rust和Go、Julia一样编译为本地代码,但与后两者不同,Rust不需要带有垃圾收集的运行时。在这方面,它也不同于在JVM上运行的Java以及Scala和Clojure等语言。大多数其他流行的现代语言,如带有C#和F#的.NET、JavaScript、Python、Ruby、Dart等,都需要虚拟机和垃圾收集来执行。

Rust为并发和并行提供了几种机制。标准库提供了一个模型,通过该模型,线程可以映射到操作系统线程,以并行执行工作。它们不共享堆内存,而是通过通道进行数据通信,并且通过类型系统消除了数据竞争。如果项目需要,有几个箱子(crates)提供了一种以轻量级线程为基础的actor模型方法。这些机制使程序员能够轻松地利用当前和未来计算平台上众多CPU核心的能力。

rustc编译器完全自托管,这意味着它是用Rust编写的,并且可以使用之前的版本来编译自己。它使用LLVM编译器框架作为其后端(更多信息见http://en.wikipedia.org/wiki/LLVM),并生成运行速度极快的本地可执行代码,因为它编译为与C++相同的底层代码(参见一些基准测试 http://benchmarksgame.alioth.debian.org/u64q/rust.php)。

Rust旨在像C++一样具有可移植性,能够在广泛使用的硬件和软件平台上运行。目前,它可以在Linux、macOS X、Windows、FreeBSD、Android和iOS上运行。想要更全面了解Rust可以运行的平台,请参见https://forge.rust-lang.org/platform-support.html。

Rust可以像在C中调用C代码一样简单高效地调用C代码,并且反之亦然,C代码也可以调用Rust代码,并发 - 面向多核执行的编码)。

Rust开发者被称为rustaceans。

稍后章节将更详细地讨论的其他Rust特性如下:

  • 变量默认不可变(使用变量和类型)
  • 枚举(结构化数据和匹配模式)
  • 模式匹配(结构化数据和匹配模式)
  • 泛型(高阶函数和错误处理)
  • 高阶函数和闭包(高阶函数和错误处理)
  • 一种称为特性的接口系统(使用特性和面向对象编程)
  • 卫生宏系统(组织代码和宏)
  • 零成本抽象,意味着Rust拥有高级语言结构,但这些不会影响性能

与其他语言的比较

像Ruby或Python这样的动态语言可以让你在编码开发的初期速度很快,但代价会在稍后出现:

  • 需要编写更多的测试
  • 运行时崩溃
  • 生产中断

Rust编译器迫使你从一开始就在编译时解决很多问题,这是发现和修复bug的最低成本的地方。

Rust的面向对象不像Java、C#或Python等常见的面向对象语言那样明确或发达,因为它没有类。与Go相比,Rust让你对内存和资源有了更多的控制,因此它让你在更低层次上编码。Go也使用垃圾收集器;它没有泛型,也没有防止其用于并发的goroutine之间的数据竞争的机制。Julia专注于数值计算性能,使用JIT编译器,也不提供像Rust那样的低层次控制。

Rust的稳定性及其演变

Rust从1.0.0版本开始,版本号遵循语义版本控制原则(更多信息请访问http://semver.org/):

  • 补丁版本:针对bug修复和其他小改动,增加最后一个数字,例如1.18.1
  • 小版本:对于不破坏现有功能的新功能,增加中间的数字,例如1.19.0
  • 主版本:对于破坏向后兼容性的更改,增加第一个数字,例如2.0.0

所以,在当前的1.n.m版本周期内不会出现重大变更,因为这个周期是向后兼容的;在这个周期内开发的Rust项目仍然可以在更新的版本中编译。然而,为了能够使用仅包含在更新版本中的新特性,必须将代码编译为那个特定的版本。

Rust拥有非常动态的进展周期。三个版本(称为渠道或构建)同时进行工作——每晚、测试和稳定,并且它们遵循严格的六周发布周期,就像网络浏览器一样:

  • 稳定渠道是当前的稳定版本,适用于正在生产中使用的Rust项目。
  • 测试渠道是被认为足够稳定,可以在较大、未部署的项目中测试新功能的版本。
  • 每晚渠道构建包含最新的实验性功能;它每24小时从master分支生成一次。你只会在实验中使用它。

测试和稳定渠道构建只在新功能回归到它们的分支时更新。通过这种安排,Rust允许用户快速访问新功能和bug修复。

此外,连续两年,Rust在Stack Overflow上被评为最受欢迎的编程语言(参见Stack Overflow调查)。

作为其成功的标志,今天,超过50家公司在生产中使用Rust,详见Rust官网,其中包括HoneyPot、Tilde、Chef、npm、Canonical、Coursera和Dropbox。

Rust的应用场景

从前面的部分可以清楚地看出,Rust可以用于通常使用C或C++的项目。事实上,许多人将Rust视为C/C++的继承者或替代者。虽然Rust被设计为系统语言,但由于其丰富的构造,它有广泛的应用范围,使其成为适合下列一个或所有类别的应用的理想候选:

  • 客户端应用程序,如浏览器
  • 低延迟、高性能系统,如设备驱动程序、游戏和信号处理
  • 高度分布式和并发系统,如服务器应用程序和微服务
  • 实时和关键系统,如操作系统或内核
  • 嵌入式系统(要求极小的运行时占用)或资源受限环境,如树莓派和Arduino,或机器人技术
  • 无法支持即时编译(JIT)编译器系统常见的长时间启动延迟的工具或服务,需要即时启动
  • Web框架
  • 大规模、高性能、资源密集型和复杂的软件系统

当代码质量很重要时,Rust尤其适用,即:

  • 中等规模或更大的开发团队
  • 长期运行生产用途的代码
  • 需要定期维护和重构的寿命周期较长的代码
  • 通常需要编写大量单元测试以保障安全的代码

Servo

Mozilla使用Rust作为编写Servo的语言,Servo是其新的Web浏览器引擎,设计用于并行性和安全性(Servo官网)。

由于Rust的编译器设计,许多类型的浏览器安全漏洞被自动预防。2013年,三星参与其中,将Servo移植到Android和ARM处理器上。Servo本身是一个开源项目,拥有超过750名贡献者。它正在积极开发中,其中包括已经用Rust实现的自己的CSS3和HTML5解析器。它在2014年3月通过了Web兼容性浏览器测试ACID2(维基百科ACID2)。

Servo目前支持Linux、OS X、Windows和Android。Servo的部分内容被合并到Gecko中(Firefox所基于的引擎),从而使Firefox项目受益于Servo项目的进步。

从零开始用Rust开发月球着陆器游戏实战项目 Rust 是一门现代的系统级编程语言,专注于安全性、性能和并发。它通过所有权(Ownership)机制在编译期避免空指针、数据竞争等常见内存错误,而无需依赖垃圾回收机制。与其他语言相比,Rust 的语法与 C/C++ 有一定相似之处,但也融合了现代语言的表达式风格。以下是一个简单的 Rust 程序示例:println!("欢迎学习Rust语言!");fn main()是程序的入口函数。println!是一个宏(macro),用于输出字符串到控制台。 阅读详情

相关推荐

编译原理2024期末复习(面向做题,大题速学)【太原理工大学】

归约-归约”冲突就是在项目集规范族一个状态中两个。

m0_63181421的博客 1万+

从零开始学习RUST语言

Rust Book(中文):https://rustwiki.org/zh-CN/book。《Rust for Rustaceans》—— 宏、高级 trait、unsafe。装 VS Code 插件:rust-analyzer + CodeLLDB。《Rust Atomics and Locks》—— 并发与内存模型。订阅 “This Week in Rust” 每周看 5 分钟更新。提示:别死磕宏和异步,先过“所有权墙”即可。每天 1–2 小时,

xuukai的博客 612

蓝牙Channel Sounding为真正的距离感知赋能

1:工作原理蓝牙™信道探测使用两种经过验证的测距方法——PBR(PBR)和RTT(RTT),实现蓝牙设备之间的安全精密测距。

weixin_43720159的博客 807

从 0 开始安装 Rust:让我们一起入坑吧!

Rust 是一门追求“安全、并发、高性能”的编程语言,兼具了底层语言的高性能和强类型语言的安全性。无论你是有多年编程经验的开发者,还是刚刚学习编程的萌新,都能在 Rust 的世界里找到乐趣并发挥所长。本篇文章将详细介绍如何在各大主流平台(Linux、macOS、Windows)上安装 Rust,让你以最快的速度开始 Rust 之旅!

hello.reader 2640

【UE5】UE5 Dedicated Server专用服务器与网络同步

这篇文章是个人在学习UE4的网络同步方面的内容的一些记录,因为UE5出来了,顺带也一起熟悉熟悉UE5,所以也就直接使用UE5来实践了。说句实在话,UE4网络同步这块确实挺难的,我自己在网上搜索的博客的内容要么停留在很浅层面只搭建一个ds服务器,要么就直接深入源码去剖析UE4的网络机制,处在中间层面的内容少之又少,不得不自己好一阵研究,强烈推荐这几位博主的博文,我在学习的过程中也从中受益匪浅。 Ken_An、风蚀之月、 刘东无敌还有我师傅推荐给我的一本关于UE4网络的PDF。 一、什么是Dedicated

Goulandis 3万+

Buck的振铃实验与分析

上上期我们提到了buck电路的开关的振铃波形,本质原因是LC的阻尼振荡。文章偏理论,那BUCK到底是怎么产生尖峰振荡呢? 要想把这个问题搞清楚,也很是不容易,所以文章有点长,请直接点赞转发加收藏。 问题 本期主要分析以下这两个问题: 1、死区时间是什么?这里有个小台阶是什么情况? 2、上下尖峰振荡是如何产生的?跟哪些因素有关? 理想的BUCK的SW波形 我们由浅入深,一步一步来,先看理想的开关SW波形—没有尖峰电压的波形。 为了能更好的看buck电路各个点的电压电流情况.

weixin_42005993的博客 3万+

rust腐蚀怎么单人游戏_腐蚀rust新手入门指南 腐蚀rust怎么开始游戏

如何开始游戏?巴拉巴拉那么多现在开始步入正轨吧!点击find game就进入了服务器列表,在这里你可以加入官方的服务器(热闹但高延迟)也可以加入玩家自己设置的服务器(有些服务器不怎么友好详情请看贴吧举报贴)1=官方服务器列表 2和3=玩家自建服务器 4=收藏过得服务器 5=玩过的服务器如果你喜欢某个服务器请单击服务器列表中对应的小星星,下次直接点4就不用找了选定之后点击join server 进入...

weixin_39556702的博客 4621

Materials Studio多层聚合物建模全流程:从Build Layers到LAMMPS data文件导出避坑指南

本文详细解析了使用Materials Studio构建多层聚合物模型并导出为LAMMPS data文件的全流程。重点剖析了Build Layers工具的核心逻辑、真空层处理技巧,并提供了解决导出过程中Z轴坐标偏移问题的实战方案,特别是如何利用msi2lmp工具的-shift参数进行精准校正,确保模型在LAMMPS中模拟的稳定性和准确性。

hhh00的博客 913

从零开始:Rust环境搭建指南

至此,你已经成功搭建了Rust开发环境,并学会了如何使用Rust的基本工具和Cargo。接下来,你可以开始探索Rust的强大功能,如并发、内存管理和类型系统等。Rust社区也非常活跃,你可以在网上找到大量的资源和教程来深化你的学习。希望这篇指南能帮助你顺利开始Rust编程之旅。我们下期再见!

程序员Linc 1349

【AI智能体】基于Coze制作跨境电商客服助手工作流实战操作详解

基于Coze制作跨境电商客服助手工作流实战操作详解

congge 3463

完整的 Python 数据分析案例:新能源汽车续航里程预测

随着新能源汽车的普及,续航里程成为消费者关注的重要指标。准确预测新能源汽车的续航里程,有助于车企优化电池管理系统、提升车辆性能,也能帮助消费者合理规划出行。本案例将基于新能源汽车的各项参数,如电池容量、行驶速度、环境温度等,构建续航里程预测模型。通过以上改进,可以提高数据处理的准确性、模型的性能和可视化的效果。

daqsdfas的博客 1588

进军rust:从0开始学习rust语法

Rust语言中的基础数据类型有以下几种:整数型简称整型,按照比特位的长度和有无符号位可以分为以下几种isize和usize两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,如果是32位架构的处理器将使用32位位长度整型。整型变量默认使用i32.Rust和其他语言一样支持32位浮点数(f32)和64位浮点数(f64)64位浮点数的精度更高,因为它有64个比特位可以表示数据因为现代计算机处理器对两种浮点数计算的速度几乎相同,默认情况下计算机会使用六十四位浮点数。 3.其他类型 其他类型

duanku111的博客 1409

如何使用Github创建一个完全免费的个人网站

摘要: 本文详细介绍如何利用Github Pages免费搭建个人静态网站,适合零基础用户。首先需注册Github账号并创建特定命名的仓库(格式:用户名.github.io),然后通过网页或命令行创建index.html文件作为网站首页。完成后可通过"仓库设置- Pages"获取网站链接。文章还包含GitHub Desktop的安装使用、代码提交指南及常见问题自检方法,并说明即使Github被墙也可迁移至国内平台(如码云)。整个过程无需编程基础,仅需15分钟即可完成基础网站搭建。

安德洛夫 1514

【Rust】从零开始的rust学习嗷

才来实习,由于部门使用的SDK是rust语言,所以先浅浅进行rust学习与记录。

zdsey的博客 2022

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Rust开始

rust开始 注重安全性和并发性 更安全更高效的代码 内存安全是不出现内存的访问的错误。 rust建立了严格的内存管理模型–所有权系统和类型系统。 泛型和trait系统使得rust具备了强大的抽象表达能力。 搭建编程环境 安装rust rust由工具rustup安装和管理。 rustup既是rust安装器,又是版本管理工具。 最新稳定版的rust的下载与安装: curl --proto "=https" ==tlsv1.2 -sSf https://sh.rustup.rs | sh 安装成功会出现以下的

wkk的博客 173

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Learn Rust for FE:从零开始构建你的第一个Rust前端工具

Rust作为未来前端基础设施的潜力正在被越来越多的开发者所认识。从Next.js对Rust的重仓投入,到swc、rollup等工具采用Rust重构,这门系统级语言正在重塑前端工具链的性能边界。本文将带你零基础入门Rust前端开发,用最简洁的步骤构建属于你的第一个Rust前端工具。 ## 📦 如何安装Rust开发环境 安装Rust最简单的方式是使用官方提供的`rustup`工具,它会帮你管理R

gitblog_01025的博客 204

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

rust开发环境_【新手向】从零开始配置Windows下Rust开发环境图解

以下内容为2017年时发布的,很多内容已经过时,有网友做了更新,见: 贠云龙:Rust环境配置 for Windows 10本文没有任何技术含量引文部分没有看的价值Rust是一门主打“安全”概念的系统级编程语言,通过一堆没接触过Rust的小伙伴我说了你也听不懂能听懂的都是接触了的小伙伴的语法保证了很多屌炸天特性,是一门理论上不作死折腾就可以保证内存安全避免数据竞争但是实际上你经常需要作死折腾的系统...

weixin_31440829的博客 981

Rust的开始

(让我们开始Rust旅程!)There’s a lot to learn,(有许多要学,)but every journey starts somewhere.(但每一段旅程开始于某处。1.Install Rust on Linux,macOS,and Windows.(在Linux、macOS和Windows上安装Rust。3.Using Cargo,Rust’s packager and build system.(使用Cargo,Rust的包和建造系统。Getting Started(启航)

qq_31163099的博客 279

【Rust日报】 2019-05-06:从零开始写 OS

从零开始写 OS超级详细的 rust OS 编写教程,作者是清华大学陈渝教授的学生。(上周日报报道过相关信息)。感兴趣的可以关注下。Read More「视频」用Rust实...

Rust语言学习交流 1313

Ubuntu也开始锈化了?Ubuntu 计划在 25.10 版本开始引入 Rust Coreutils

从 Ubuntu 25.10 开始,我们的目标是将其中一些现代实现作为默认设置。近期目标是将 uutils 的 coreutils 实现作为 Ubuntu 25.10 的默认设置,如果条件允许,还将在下一个长期支持(LTS)版本 Ubuntu 26.04 LTS 中采用。

rayylee 2041

【亲测免费】 Moon:从零开始的 Rust 编写网页浏览器

Moon:从零开始的 Rust 编写网页浏览器 项目介绍 Moon 是一款完全从零开始开发的网页浏览器,由 Rust 语言编写而成。作为一个业余项目,Moon 不仅仅是一个浏览器,更是一个展示如何从最基础的代码构建出一个功能齐全的网页浏览器的实践。项目秉承“从零开始”的精神,尽量避免使用外部库,力求通过自研实现浏览器的各项核心功能。 项目技术分析 Moon 浏览器的技术栈主要基于 Rust 语言,...

gitblog_00483的博客 1592

rust 官服 时间_Rust 语言入门教程:从实战 To-Do App 开始

Rust 语言从 2015 年发布的首个开源版本开始,便获得了社区大量的关注。从 StackOverflow 上的开发者调查来看,Rust 也是 2016 年每年都最受开发者喜欢的编程语言。Rust 由 Mozilla 设计,被定义为一个系统级编程语言(就像 C 和 C++)。Rust 没有垃圾处理器,因此性能极为优良。且其中的一些设计也常让 Rust 看起来很高级。Rust 的学习曲线被普遍认为...

weixin_31832681的博客 2397

01-开始Rust之旅

官方推荐使用rustup下载 Rust,这是一个管理 Rust 版本和相关工具的命令行工具。下载时需要连接互联网。这边提供了离线安装版本。本人学习的机器环境为: ubuntu x86_64,因此选用第②个工具链;1.2.

优快云爱好者的独到见解 2276

【Rust日报】2023-07-05 让我们从 abandon 开始--用 rust 写链表

让我们从 abandon 开始--用 rust 写链表虽然 Rust 的标准库中已经有了一个LinkedList数据结构,但创建自己的数据结构是了解更多 Rust 的一种有趣的方式。节点让我们首先定义我们的 Node 结构来保存模版。我们的 Node 将包含一个数据项,以及 Node 可能存在或可能不存在的上一个和下一个数据项。/// A node containing a data item a...

Rust语言学习交流 439
上一篇: 第 3 章:文件系统
下一篇: 第 4 章:深入了解 C++ 对象
段舸
博客等级 码龄3年 533粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值