rustup 慢_Rust 慢更贴[持续更新Rust学习的点点滴滴]

2023-11-13

入门篇

Rust入门系列,这个帖子会一直更新,欢迎大家回复!首先从安装来写把。

rust安装

在写这篇文章的时候,rust最新版本是1.35,安装的步骤大家可以直接上rust官网:

https://www.rust-lang.org/

curl https://sh.rustup.rs -sSf | sh

但是实际上安装会比较慢,建议大家可以看看如何更换下载源。

安装的时候其实设置两个环境变量就可以解决这个问题:

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static

export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

另外安装好之后我们将会有cargo,这个就相当于是pip,rust的包管理工具。

使用cargo就跟使用pip一样,官网下载库的速度慢的蛋疼。怎么办?换源。

sudo vim ~/.cargo/config

然后添加:

[source.crates-io]

replace-with = 'ustc'

[source.ustc]

registry = "https://mirrors.ustc.edu.cn/crates.io-index"

对于想入门Rust的同学来说,我们将为你们带来一个全新的Rust系列专栏,在哪里我们将从入门到探索未来操作系统级编程语言。

知乎专栏:Rust从入门到放弃CPP

假如你要升级rust,那么直接:

rustup update

假如你已经安装了cargo,安利一个很好用的rust程序:ripgrep:

cargo install ripgrep

然后你就可以使用rg命令查找任何文件内容了。

[17:33:32] jintain:rti_workspace $ rg CdrBuffer

5.3.1/examples/corba/java/corba_dds/MessageTypeSupport.java

16:import com.rti.dds.cdr.CdrBuffer;

5.3.1/examples/corba/java/corba_dds/DateTimeTypeSupport.java

16:import com.rti.dds.cdr.CdrBuffer;

5.3.1/examples/connext_dds/java/hello_world_dtls/HelloWorldTypeSupport.java

15:import com.rti.dds.cdr.CdrBuffer;

5.3.1/examples/connext_dds/java/hello_world_wan/HelloWorldTypeSupport.java

15:import com.rti.dds.cdr.CdrBuffer;

5.3.1/examples/connext_dds/java/hello_world_topic_query/HelloWorldTopicQueryTypeSupport.java

it's very fast!

rust简单上手

上一阶段安装了rust,接下来该上手了. 这篇主要从3个方面上手:

字符串处理

数组处理

函数处理

基本上学会这三个方面,rust你就无师自通了. 首先我们来看一下字符串, rust的字符串比较蛋疼. 比如我要拼接两个:

let a = "hello";

a += "aaa";

上面写法是不对的, rust根本不支持. 具体原因因为rust里面有一套机制, 它不允许你进行简单的+然后赋值, 因为每一个变量都是有owner的. 你吧人家加过来之后, 归谁?不好说. 正确的写法是:

fn main() {

let mut a = "hello".to_string(); // &'static str

println!("{}", a);

a.push_str(" world.");

println!("{}", a);

}

这里主要是两个不同的string的差别:

&str 这个是string的引用, 类似于C++里面的char*;

String 这个是一个类, 类似于C++里面的string, 也就有点像Rust里面的Vector

我们的拼接操作是先 to_string 的, 这里就等于是把操作变成String来处理, 这也就能 push_str了, 同样也就可以进行相关的操作了.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rustup 慢_Rust 慢更贴[持续更新Rust学习的点点滴滴] 的相关文章

  • JAVA单元测试框架-5-timeOut测试

    这篇先来介绍 Test注释下的一个属性 timeOut 主要用来超时判断 详细点说 如果哪个测试方法需要监听执行的时间 那么就可以考虑采用timeOut属性 例如 实际的接口测试中 加入登录接口时间不能超过3秒中 下面来看看如何监控这个方法
  • python为什么int()无法将float转化成int

    原因可能是你用了np zeros count 它的默认数据类型是float64类型的 而且不管你往这个np列表传入什么类型的值 或者后期怎么int 都没用 因为它会自动又改为float类型 并且这个float类型可不是原生的浮点类型 虽然
  • 【手势识别小车】---------(1)项目发起计划与准备

    嵌入式学习从大一到大二已经有两年了 学习了很多零零散散的东西 单片机 通信 视觉 ROS等等 但是没有进行系统的管子所以设计如下一个项目 作为自己阶段性的总结 功能设计 1 小车根据指令前进 后退 转向 停止 2 上位机摄像头进行人脸识别
  • GitHub 搜索技巧

    GitHub 作为目前广大程序猿最大的游乐场 在今年 6 月被 微软 以 75 亿美元价值的微软股票收购 GitHub 再次成为业界讨论的焦点 GitHub 以自由开放的定位吸引了相当多的个人开发者和企业 不断发布和更新相当好用的软件和工具
  • 毕业了

    自己的学生时代快告一段落 即将迎来的是工作时代 对未来充满了好奇 兴奋 希望我保有激情的去面对工作 在写论文的过程中 我也有对自己的论文感兴趣的 比如对Hadoop 但是对于另外一方面没了兴趣 也没有怎么深究 因此 这也是自己的论文的一个遗
  • Spock单元测试框架介绍及在美团优选的实践_第二章(static静态方法mock方式)

    Spock单元测试框架介绍 文章目录 Spock单元测试框架介绍 前言 一 什么是Spock单元测试框架 二 使用步骤 1 引入maven依赖 2 创建GoodsService订单业务类进行单测 3 创建Groovy class类 4 创建
  • pip安装yaml出错问题及解决方案

    pip安装yaml出错问题及解决方案 在使用Python开发过程中 可能会遇到需要安装第三方库的情况 而有时候我们在使用pip install安装某些库时 会遇到一些错误提示 其中就有可能会出现 ERROR Could not find a
  • python删除列数据,另存为xls格式带表头

    使用python删除列数据 import pandas as pd from pandas import DataFrame data pd read excel r 统计 xls sheet name Sheet1 del data 统计
  • LoadRunner 引入在eclipse中写的java项目,并介绍LR的使用(不是简单的打印语句项目)

    摸索了4天中终于在LoadRunner中把java脚本编译通过了 可以正常的运行Java脚本进行性能测试 一 介绍环境 eclipse JDK1 8 32位的 LR12 55 如果有需要LR12 55的小伙伴 在百度网盘直接下 链接 htt
  • 博客系统自动化测试项目实战(测试系列9)

    目录 前言 1 博客前端页面测试用例图 2 测试用例的代码实现 2 1登录页面的测试 2 2博客列表页面的测试 2 3写博客测试 2 4博客详情页面的测试 2 5已发布博客的标题和时间的测试 2 6注销用户的测试 结束语 前言 之前小编给大
  • Android Studio 插件开发8、替换文本

  • Qt6 第一天认识基本模块、附加模块、支持的平台、QML用户界面

    文章目录 Qt6 焦点 Qt6 核心 基本模块 Qt6 附加模块 Qt6 支持的平台 Qt6 简介 Qt6 消化用户界面 Qt6 焦点 Qt 5在很多年前发布 引入了一种新的声明方式来编写令人惊叹的用户界面 从那时起 我们周围的世界发生了很
  • windows10连接小米耳机Redmi AirDots 2

    1 控制面板 2 添加蓝牙设备 3 搜索 4 下一步 如果链接不上 请删除已有设备从第一步开始重新做
  • 2017年如何成为全栈工程师,这些技能是你必须具备的!

    转载自 A Guide to Becoming a Full Stack Developer in 2017 作者 Daniel Borowski 译者 夜风轻扬 编者按 根据Stack Overflow 2016 Developer 调查
  • 字节一面:post为什么会发送两次请求?

    前言 最近博主在字节面试中遇到这样一个面试题 这个问题也是前端面试的高频问题 因为在前端开发的日常开发中我们总是会与post请求打交道 一个小小的post请求也是牵扯到很多知识点的 博主在这给大家细细道来 作者简介 程序员小豪 全栈工程师
  • Redis 高性能IO模型:为什么单线程Redis能那么快?

    今天 我们来探讨一个很多人都很关心的问题 为什么单线程的 Redis 能那么快 首先 我要和你厘清一个事实 我们通常说 Redis 是单线程 主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的 这也是 Redis 对外提供
  • SQL行列转换

    常见的行列转换包括以下四种情况 1 列转行 2 行转列 3 列转换成字符串 4 字符串转换成列 1 列转行 导入数据 DROP TABLE IF EXISTS t student CREATE TABLE t student id int
  • 教你一招,彻底清除“一刀999”的弹窗广告

    大家的电脑是不是也经常弹出烦人的广告 对于程序员来说 电脑从不离手 如果总是弹出广告 特别的烦人 今天我就来分享如何屏蔽广告 666 跟弹窗广告说拜拜 教你一招 彻底清除恶意软件的弹窗广告 一 首先按Win R打开运行 二 然后我们输入MR
  • VC6++配置汇编环境和第一个简单程序

    准备工作 1 下载并安装VC6 软件 2 下载Irvine32 lib库以及相关文件 Intel 汇编语言程序设计 irvine lib文件内 3 下载ml exe和ml err文件 ml from masm32文件内 以上准备工作的文件均

随机推荐

  • JPA 多对多映射,查询死循环

    解决方法 中断循环即可 首先这不是jpa的问题 是序列化的问题 我们只要中断序列化就可以了 通过注解 JsonIgnoreProperties value dblist 将产生死循环的属性忽略 中断死循环 例子 Entity Data pu
  • BUUCTF [FBCTF2019] Products Manager

    BUUCTF FBCTF2019 Products Manager 考点 基于约束的SQL攻击 数据库字符串比较 INSERT截断 启动环境 产品管理 其中有三个功能 查看前5的产品 添加产品 查看产品细节 知道了大致功能 尝试正常的业务逻
  • MTK手机平台充电原理

    EPT GPIO初始化文件 bsp gpio ept config c 1 知识点总结 1 1 Official 参考充电电路 Figure 1 1 参考电路 VCHG USB正极 VCDT VCHG Charger Detect充电电压检
  • SpringBoot实现基础的sso单点登录

    前言 本文借鉴学习了团团大佬的文章和源码 原文地址 想知道单点登录原理等理论可以移步大佬文章 代码及实现 本次学习基于session模拟了数据库查询和token权限认证 构建 准备三个服务器 这里用三个springboot项目直接模拟了 他
  • python把坐标点画成三维图形_python matplotlib模块——绘制三维图形、三维数据散点图(转)...

    python matplotlib模块 是扩展的MATLAB的一个绘图工具库 他可以绘制各种图形 可是最近最的一个小程序 得到一些三维的数据点图 就学习了下python中的matplotlib模块 如何绘制三维图形 初学者 可能对这些第三方
  • 操作系统考试复习——第四章 4.3连续分配存储管理方式

    在这里的开头需要讲述一下碎片 碎片分为内碎片和外碎片两种 内碎片 分区之内未被利用的空间外碎片 分区之间难以利用的空闲分区 通常是小空闲分区 连续分配存储管理方式 为了能将用户程序装入内存 必须为它分配一定大小的内存空间 1 单一连续分配
  • android移动开发软件安装,android studio 开发的安卓软件怎么安装到手机上

    android studio 开发中如何让运用运行在真机中 大体实现方式有3种 分别是 真机通过usb插到电脑上进行开发 android studio 上面编写程序进行编译apk版本 通过其他助手或者adb命令推送到手机中运行 通过wifi
  • docker入门级使用教程

    1 Docker是什么 简单理解为主要应用在Linux上的虚拟机 后台中常用到 镜像 系统的镜像文件 是一个系统 容器 正在运行中的虚拟机 tar文件 将镜像直接保存为tar文件 是一个可加载的中间文件 Dockfile 配置文件 根据其中
  • FFT简介小结

    FFT是离散傅立叶变换的快速算法 可以将一个信号变换到频域 有些信号在时域上是很难看出什么特征的 但是如果变换到频域之后 就很容易看出特征了 这就是很多信号分析采用FFT变换的原因 另外 FFT可以将一个信号的频谱提取出来 这在频谱分析方面
  • 【微信小程序】wx.onBluetoothDeviceFound 安卓机第一次可以连接蓝牙设备,第二次搜索不到问题

    问题原因 wx onBluetoothDeviceFound 接口返回的是新的蓝牙设备 之前连接过的在部分安卓机型上 不算做新的蓝牙设备 故重新连接搜索不到 解决办法 操作完成后要及时关闭连接 同时也要关闭蓝牙设备 否则安卓下再次进入会搜索
  • 使用遗传算法解决单目标优化问题及MATLAB代码实现

    使用遗传算法解决单目标优化问题及MATLAB代码实现 随着现代计算机科学的快速发展 越来越多的实际问题需要使用最优化算法进行求解 其中 遗传算法因其应用范围广泛 求解能力强等特点而备受关注和研究 本文将介绍如何使用遗传算法求解单目标优化问题
  • Ubuntu 18.04.6 Android Studio Giraffe adb logcat 无法使用

    在 Ubuntu 18 04 6 上 在链接上设备以后 发现可以用 Android Studio 安装应用 但无法用 Android Studio 看 logcat 手动从命令行停止 启动 adb 会报错如下 daemon not runn
  • 自定义导航栏

  • cenos7 下通过yum安装和配置mariadb

    centos 7 的软件源中有mariadb的 所以这里我们不配置他的源了 若没有的话可以用以下方式来配软件源 vi etc yum repos d MariaDB repo 插入以下内容 MariaDB 10 2 4 CentOS rep
  • 查看云服务器信息,查看云服务器信息

    查看云服务器信息 内容精选 换一换 对于已安装InfiniBand网卡驱动的H2型弹性云服务器 以下简称IB云服务器 可以通过如下方式 检查云服务器的IB网卡驱动安装成功 网络连通 可以正常工作 检查过程中 如果发现您的弹性云服务器未安装i
  • echarts图表鼠标悬停时 图例错位

    1 问题 当页面body拥有zoom属性之后 鼠标划过echarts图表时 触发位置就不正常 2 原因分析 这都是因为设置了zoom 如果你在你的项目中设置了zoom以达到缩放比例的适配 在使用echarts图表时就会出现错位的问题 3 解
  • cmake(二十八)Cmake工具链

    一 选择编译器及设置编译器选项 1 应用场景 1 在 实际的项目平台中 可能安装有 多个版本 的 编译器 2 同时由于 不同的功能 可能会需要设置 不同的编译参数 2 初始状态 3 IDE工具CLion配置 4 CMAKE C COMPIL
  • pycharm查看全部tensor数据,取消省略

    方法一
  • 【深度学习——点云】DGCNN(EdgeConv)

    这篇文章提出一种边卷积 EdgeConv 操作 来完成点云中点与点之间关系的建模 使得网络能够更好地学习局部和全局特征 论文地址 Dynamic Graph CNN For Learning On Point Clouds 1 Motiva
  • rustup 慢_Rust 慢更贴[持续更新Rust学习的点点滴滴]

    入门篇 Rust入门系列 这个帖子会一直更新 欢迎大家回复 首先从安装来写把 rust安装 在写这篇文章的时候 rust最新版本是1 35 安装的步骤大家可以直接上rust官网 https www rust lang org curl ht