Rust 程序设计语言 简体中文版 1.85.0阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设你按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第二、十二和二十一章是项目章节; 其余都是概念章节。 第一章介绍如何安装 时也有类型推断。当我们写出 let guess = String::new() 时,Rust 推断出 guess 应该是 String 类型,并不需要我们写出类型。另一方面,secret_number,是数字类型。几个数字类 型拥有 1 到 100 之间的值:32 位数字 i32;32 位无符号数字 u32;64 位数字 i64 等等。 Rust 默认使用 i32,所以它是 secret_number 的类型,除非增加类型信息,或任何能让 42/562Rust 程序设计语言 简体中文版 数据类型 在 Rust 中,每一个值都有一个特定 数据类型(data type),这告诉 Rust 它被指定为何种数 据,以便明确数据处理方式。我们将看到两类数据类型子集:标量(scalar)和复合 (compound)。 记住,Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的 类型。根据值及其使用方式0 码力 | 562 页 | 3.23 MB | 27 天前3
Rust 程序设计语言简体中文版先阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第 2、12 和 20 章是项目章节;其余 都是概念章节。 第 1 章介绍如何安装 3 . 2 . 数 据 类 型 数据类型 ch03-02-data-types.md commit d0acb2595c891de97a133d06635c50ab449dd65c 在 Rust 中,每一个值都属于某一个 数据类型(data type),这告诉 Rust 它被指定为何种数 据,以便明确数据处理方式。我们将看到两类数据类型子集:标量(scalar)和复合 (compound)。 `no_type_annotations` due to previous error 你会看到其它数据类型的各种类型注解。 标量类型 标量(scalar)类型代表一个单独的值。Rust 有四种基本的标量类型:整型、浮点型、布尔类 型和字符类型。你可能在其他语言中见过它们。让我们深入了解它们在 Rust 中是如何工作的。 整型 整数 是一个没有小数部分的数字。我们在第二章使用过 u32 整数类型。该类型声明表明,它 关联的值应该是一个占据0 码力 | 600 页 | 12.99 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 www.hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 调用它的对象,能够对类的实例中包含的数据进行操作。 下面以几种常见的编程语言为例来说明。 ‧ C 语言是过程式编程语言,没有面向对象的概念,所以只有函数。但我们可以通过创建结构体(struct) 来模拟面向对象编程,与结构体相关联的函数就相当于其他编程语言中的方法。 ‧ Java 和 C# 是面向对象的编程语言,代码块(方法)通常作为某个类的一部分。静态方法的行为类似于 函数,因为它被绑定在类上,不能访问特定的实例变量。 65 更大的数组,并将旧数组的内容复制到新数组中。 Q:在构建栈(队列)的时候,未指定它的大小,为什么它们是“静态数据结构”呢? 在高级编程语言中,我们无须人工指定栈(队列)的初始容量,这个工作由类内部自动完成。例如,Java 的 ArrayList 的初始容量通常为 10。另外,扩容操作也是自动实现的。详见后续的“列表”章节。 Q:原码转补码的方法是“先取反后加 1”,那么补码转原码应该是逆运算“先减0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 调用它的对象,能够对类的实例中包含的数据进行操作。 下面以几种常见的编程语言为例来说明。 ‧ C 语言是过程式编程语言,没有面向对象的概念,所以只有函数。但我们可以通过创建结构体(struct) 来模拟面向对象编程,与结构体相关联的函数就相当于其他编程语言中的方法。 ‧ Java 和 C# 是面向对象的编程语言,代码块(方法)通常作为某个类的一部分。静态方法的行为类似于 函数,因为它被绑定在类上,不能访问特定的实例变量。 65 更大的数组,并将旧数组的内容复制到新数组中。 Q:在构建栈(队列)的时候,未指定它的大小,为什么它们是“静态数据结构”呢? 在高级编程语言中,我们无须人工指定栈(队列)的初始容量,这个工作由类内部自动完成。例如,Java 的 ArrayList 的初始容量通常为 10。另外,扩容操作也是自动实现的。详见后续的“列表”章节。 Q:原码转补码的方法是“先取反后加 1”,那么补码转原码应该是逆运算“先减0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 5 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视 ?(?) 。 Q:函数和方法这两个术语的区别是什么? 「函数 function」可以被独立执行,所有参数都以显式传递。「方法 method」与一个对象关联,被隐式传递 给调用它的对象,能够对类的实例中包含的数据进行操作。 下面以几种常见的编程语言为例来说明。 ‧ C 语言是过程式编程语言,没有面向对象的概念,所以只有函数。但我们可以通过创建结构体(struct) 来模拟面向对象编程, 来模拟面向对象编程,与结构体相关联的函数就相当于其他编程语言中的方法。 第 2 章 复杂度分析 hello‑algo.com 50 ‧ Java 和 C# 是面向对象的编程语言,代码块(方法)通常作为某个类的一部分。静态方法的行为类似于 函数,因为它被绑定在类上,不能访问特定的实例变量。 ‧ C++ 和 Python 既支持过程式编程(函数),也支持面向对象编程(方法)。 Q:图解“常见的空间复杂度类型”反映的是否是占用空间的绝对大小?0 码力 | 383 页 | 17.61 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐AES128,但 是更多次轮询 是 TLCP、消息加解密,用于替代 DES/AES 等国际算法 Sm7 / 分组加解密 分组加 密 128 否,仅以 IP 核的形 式存在于芯片中 卡证类、票务类、支付与通卡类 应用 Sm9 GM/T 0044-2016 ISO/IEC 10118-3:2018 标识密码算法:签名 校验,密钥交换,密 钥封装与加解密 非对称 加密 128 是 TLCP,适用于新兴应用的安全保 • SM7 为分组加密算法,对称加密,分组长度为128比特,密钥长度为128比特。 • 保证信息机密性。 • 该算法不公开,应用包括身份识别类应用(非接触式 IC 卡、门禁卡、工作证、参赛证 等),票务类应用(大型赛事门票、展会门票等),支付与通卡类应用(积分消费卡、校 园一卡通、企业一卡通等)。 SM9 Introduction of SM9 Rust China Conf 2022 –0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust 语言学习笔记的通用控制结构。和 C 和 C++ 风格的编程语言一样,代码段放在花括号中。 Rust 使用实现(implementation)、特征(trait)和结构化类型 (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 做到了内存安全而无需 .NET 和 Java is_she_love_me = false; let mut is_he_love_me: bool = true; 当然,bool 类型被用的最多的地方就是在 if 表达式里了 2.4.2.2 数字类型 和其他类 C 系的语言不一样,Rust 用一种符号+位数的方式来表示其基本的数 字类型。 可用的符号有 i、f、u 可用的位数,都是 2 的 n 次幂,分别为 8、16、32、64 及 size。 因为浮点类型最少只能用 的地址返回,但局部变量 a 存在栈中,在离开作用域 后,局部变量所申请的栈上内存都会被系统回收,从而造成了 Dangling Pointer 的问题。这是一个非常典型的内存安全问题。很多编程语言都存在类 似这样的内存安全问题。 再来看变量 c,c 的值是常量字符串,存储于常量区,可能这个函数我们只调用 了一次,我们可能不再想使用这个字符串,但 xyz 只有当整个程序结束后系统 才能回收这片内存,这点让程序员是不是也很无奈?0 码力 | 117 页 | 2.24 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 验的大规模图数据智能分析系统与平台,满足了大数据时代从复杂异质图数据中进行知识 发现的重要需求。最终获得国内外授权发明专利 43 项, CCF -A 类论文 51 篇,获得 2 次国际竞赛冠军,参与了 2 项图计算相关标准制定。 AtlasGraph 架构及实现 图技术简介 Takeway “ 世界是复杂关系的总和”—— 一张典型的知识图谱 将高维的图信息映射到低维向量中 • 通过图嵌入将客户关系表示为低维向量,可以结合其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息 Relational Table Real World Multi-Context is Preserved with 基于 Rust 开发的分布式存储引 擎及图计算引擎,精细的内存 管理设计,内置索引系统,支 持毫秒级的并发查询响应速度 易用 AQL(Atlas Graph Query Language) ,类 SQL 的图查询 语言,内置上百种分析函数, 面向分析师友好,拥抱标准, 基于 openCypher 向 ISO GQL 迈进 实时大图 支持万亿节点存储及流式计算 引擎的结合,最新数据实时入0 码力 | 38 页 | 24.68 MB | 1 年前3
硬件创业公司的Rust应用和转型 - 陈昱衡SDK迁移到Rust 更多行业支持 更好的ROTS 更稳定的SDK 我司目前阶段,过渡期 嵌入式Rust应用 脑立体定位仪 1um精度 超小体积 自定义类SPI同步采集协议 采集+计算+自适应滤波 全自动脑立体定位仪(在研) 电机控制移动 传感器精度增到100nm 远程控制 自动运行 关注逻辑本身不用过分关心内存安全 嵌入式项目评估 Flickable 底部图层按键/滚轮 触发 图片切换时直接改图片地址导致卡顿 数据无法正常渲染 图表无支持,列表表格等支持弱 。。。 轻量化,高效率 多平台多语言支持 团队未来愿景 类QML的语法 Cargo 社区 胶囊测温仪 Slint踩坑 开荒 分页表格 悬浮球 隐藏页面 Tab滑动页面 可变图表 后续Rust人才跟进 开源工作室 LAB5604 从硬件到S0 码力 | 23 页 | 4.95 MB | 1 年前3
Comprehensive Rust(简体中文) 202412能够在资源匮乏的设备(如手机)上运行。 • 没有运行时和垃圾收集。 • 关注程序可靠性和安全性,而不会牺牲任何性能。 4.2 Rust 的优势 Rust 有一些独特的卖点: 23 • 内存安全:在编译时可防止所有类内存 bug – 不存在未初始化的变量。 – 不存在“双重释放”。 – 不存在“释放后使用”。 – 不存在 NULL 指针。 – 不存在被遗忘的互斥锁。 – 不存在线程之间的数据竞争。 – 不存在迭代器失效。 不用在这里占用过多时间。所有这些要点均会在后面进行详细讲解。 应该问问学生们都使用过哪些语言。根据答案侧重讲解 Rust 的不同特性: • 使用过 C 或 C++:Rust 利用借用检查消除了一类 运行 。你可以达到堪比 C 和 C++ 的性能, 而没有内存不安全的问题。并且你还可以得到些现代的语言构造,比如模式匹配和内置依赖管理。 • 使用过 Java、Go、Python、JavaScript ("cat", 2))); } • Rust 会根据参数类型和返回值推理出 T 的类型。 • 这与 C++ 模板类似,但 Rust 会立即编译部分通用函数,因此该函数必须对所有符合约束条件的类 型都有效。例如,请尝试修改 pick 函数,如果 n == 0,则返回 even + odd。即使仅使用带有整 数的“pick”实例化,Rust 仍会将其视为无效。C++ 可让您做到这一点。 740 码力 | 359 页 | 1.33 MB | 10 月前3
共 13 条
- 1
- 2













