深入RUST标准库内核(序言)

2023-05-16

对RUST的兴趣来自于Linus认真考虑将RUST作为Linux内核开发语言的新闻报道。因此开始了对RUST探索,不久后基本上就从心底里认同了这门语言,RUST不仅是高性能及安全的语言,它的语法设计也会带来更合理的代码架构,而后一点实际上是以类为基础的编程语言想解决但效果不彰的。相比于它带来的好处,所有权,借用,生命周期等带来的复杂性仅仅是一个训练和习惯的过程而已。
但这个训练和习惯的过程仅仅靠学习各种书籍,指南,文档显然是无法达成的,代码的训练和研究必不可少。在做了一些表层语法的训练之后,就需要做一些复杂模块的代码研究了。
RUST标准库显然是一个合适的研究对象。(标准库代码就在rust安装目录下),vscode+rust插件是一个合适的阅读代码的IDE。
资深C程序员都理解,编程语言核心的关键就是彻底的了解内存和指针,而RUST各种书籍和学习资料中,对指针的解释基本没有触及根本。标准库代码则揭示了指针的所有秘密:原生指针的结构体类型?内存的申请与释放?不同类型的原生指针如何相互转换?… 。实际上,了解了RUST的内存和原生指针,那就解决了RUST大部分的理解难点,剩下的只是概念理解和工作量。
RUST的运算符重载是RUST的另一个核心点。数学运算/位运算/逻辑运算的重载易于理解。但下标运算符[],范围(Range)运算符../start..end/start..=end/start../..end/..=end,问号运算符?,解引用运算符(*)就没有那么易于理解。
迭代器Iterator可视作语言循环结构的一部分,RUST的基础类型数组,切片,字符串对Iterator的实现是学习RUST的代码技巧不可放过的。
Option/Result是RUST的一大创举,这两个类型使得程序员的疏忽大意和思虑不周再没有用武之地。Option/Result结构体的行为也是RUST的函数式编程的基础设施。
在RUST智能指针系列结构中,Box是内存申请的基础,Box的代码是理解RUST的堆内存操作的关键。
还有Vec,String,Rc,Cell,Cow,RefCell,Arc等等,这里不再一一例举,本书会逐一分析其源码,揭示其秘密。

对RUST标准库的代码进行研究是一件很辛苦,很有乐趣的工作。最有趣和最辛苦的就是碰到一个新的类型,新的Trait的时候。往往在“为什么有这个结构类型和Trait”的思考和探索中,一两个小时就过去了。而后豁然开朗,击节赞叹。RUST也随着这些研究和探索,由仙界堕入凡尘。
本书将把这段研究RUST标准库的过程和结果进行揭示。
RUST现在虽然还泯然众人,但估计不久之后将脱颖而出,而能否熟练的用RUST编写程序很可能成为评判优秀程序员的一个标准。希望这本书能够帮助大家更好的掌握这门语言。

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

深入RUST标准库内核(序言) 的相关文章

随机推荐

  • IDEA SpotBugs代码安全审计插件

    IDEA SpotBugs代码安全审计插件 在寻找idea代码审计插件的时候 xff0c 发现Findbugs已经停止更新 xff0c 无法在idea2020 01版本运行 xff0c 由此找到SpotBugs SpotBugs介绍 Spo
  • 洛谷P1233 木棍加工

    题目描述 一堆木头棍子共有n根 xff0c 每根棍子的长度和宽度都是已知的 棍子可以被一台机器一个接一个地加工 机器处理一根棍子之前需要准备时间 准备时间是这样定义的 xff1a 第一根棍子的准备时间为1分钟 xff1b 如果刚处理完长度为
  • 如何用python写一个计算日期间隔的程序?

    如何用python写一个计算日期间隔的程序 xff1f 文章目录 如何用python写一个计算日期间隔的程序 xff1f 前言问题梳理问题解决写在后面 前言 为什么想起来写一个这样的程序呢 xff1f 前几天聊天的时候 xff0c 突然想计
  • Ubuntu 中软件包缓存文件损坏问题

    终端输入 xff1a sudo apt get update 出现如下问题 解决方法 xff1a 输入 sudo rm rf var lib apt lists
  • linux开机自启系统服务的大致原理

    Linux启动系统服务 init启动 init读取 etc inittab文件 xff0c 获取运行等级 span class token comment The default runlevel 启动时的运行等级 span id 5 in
  • apache2 配置https

    配置Apache2 https 开启ssl模块 span class token function sudo span a2enmod ssl 启用ssl站点 span class token function sudo span a2en
  • JAVA对数字+字符串,中文一二三四等特殊格式字符串进行特殊排序

    提示 xff1a 对数字 43 字符串 中文一二三四 格式字符串去重 排序 重组 可以对customSort 类的46 53行进行修改 查看新排序效果 代码如下 xff08 示例 xff09 1 SortTest 类 xff1a span
  • Linux安装Jenkins

    手把手教你在Linux上安装jenkins xff0c 废话不多说 xff0c 直接上教程 1 xff0c 用windows到官网下载jenkins 2 346 1 1 noarch rpm xff0c 下载链接 xff1a https w
  • 舵机控制(STM32F103C8T6)

    前言 本文是以STM32F103C8T6作为主控芯片 xff0c 通过PB6端口输出PWM xff0c 实现控制180 舵机 一 舵机控制原理 xff08 一 xff09 概述 舵机是一种位置伺服驱动器器 xff0c 是一种带有输出轴的小装
  • 设计模式详解:建造者模式

    今天来看一下创建新模式中的第五种模式 xff1a 建造者模式 仍然是先看两张图 xff0c 复习模式类型 xff0c 加深记忆 定义 xff1a 建造者模式 xff1a 将一个复杂对象的构建与它的表示分离 xff0c 使得同样的构建过程可以
  • 动态数码管显示(STM32F103C8T)

    一 前言 本实验是通过使用STM32F103C8T6作为主控 xff0c 八段数码 xff08 共阴极 xff09 是通过74HC245双向缓冲器控制数段选 xff0c 74HC138译码器控制位选 每个数码管显示与位号相对应的数字 xff
  • 取字模软件的使用

    1 点击运行 取字模软件 EXE 2 输入文本 xff0c 完成后按Ctrl 43 Enter按键结束输入 xff0c 如下图 3 设置字体显示的大小16 16 xff0c 如下图 xff1a 4 设置字体格式 xff0c 字体大小 xff
  • 51单片机应用篇-- --数码管60秒计时,独立按键可调

    开篇先说一句废话 本旺名字叫萨摩耶 xff0c xff0c Please 叫我旺财 xff0c xff0c xff0c 哈哈 xff0c 招财进宝嘛 xff01 缘由 本来按照我的学习计划 xff0c 我现在应该是单片机的学习过程 xff0
  • SOLIDWORKS生成URDF文件后部分文件散乱分布

    问题 xff1a SOLIDWORKS生成URDF文件在正确配置关节坐标系的情况下 xff0c 依然出现了部分零件散乱分布的情况 xff0c 例如图所示 xff1a 问题原因 xff1a 同样的零件多次装配 解决办法 xff1a 要插入同一
  • Matlab笔记:Matlab function生成C代码并运行

    1 Matlab函数 xff0c 输入 x y z roll pitch yaw xff0c 输出out为8 6的数组 2 点击Matlab coder 3 选择要生成的函数 4 定义输入类型 xff0c 输入的六个数选择double数值
  • matlab接收ROS发布的话题通信数据并实时画图

    版本说明 matlab R2021b ROS noetic matlab与ROS通信连接 在matlab和ROS连接之前 xff0c 需要先运行ROS核心 xff0c 记录ROS端的IP地址 再查找并记录matlab端 xff08 我这里是
  • simulink联合STM32CubeMX开发串口通信程序

    摘要 使用SIMULINK联合STM32CubeMX生成STM32F407串口发送数据代码 xff0c 发送的数据为正弦函数波形 再用SIMULINK写一个串口接收数据模型 xff0c 接收来自STM32发送的数据 xff0c 最后绘制出波
  • element 默认主题样式

    使用方法 span class token keyword import span ElementUI span class token keyword from span span class token string 39 elemen
  • 深入RUST标准库内核(一)标准库内容概述

    本书github链接 inside rust std library 本书前面章节 xff1a 深入RUST标准库内核 xff08 序言 深入RUST标准库内核 引言概述本书目的目标读者本书约定 RUST标准库体系概述core库编译器内置i
  • 深入RUST标准库内核(序言)

    对RUST的兴趣来自于Linus认真考虑将RUST作为Linux内核开发语言的新闻报道 因此开始了对RUST探索 xff0c 不久后基本上就从心底里认同了这门语言 xff0c RUST不仅是高性能及安全的语言 xff0c 它的语法设计也会带