 2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动2021信创“大比武”鲲鹏基础软件开发赛道 基于Rust语言的openGauss驱动 目录 1. 背景及要求 2. 方案介绍 3. 遇到的问题 4. 团队简介 3 背景 Rust是一门新兴的系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范 式的多范式语言。 openGauss数据库是一款高性能、高安全的数据库,社区支持Rust驱动可以更方便Rust语言开发者更好地基 12 遇到的问题 • 版本问题 • 鉴权方式始终是MD5的问题 • 测试服务器 13 团队简介 纪凤楠 十一年研发工作经验。工作中主要是使用 JAVA 语言。 目前就职于中软国际,任职架构师。虽然是从事技术工作,但个人认为技术要为业务服务,因此也非常重视对业务的理 解,力图为业务量身打造最合适的技术实现。 Thank you.0 码力 | 14 页 | 566.24 KB | 1 年前3 2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动2021信创“大比武”鲲鹏基础软件开发赛道 基于Rust语言的openGauss驱动 目录 1. 背景及要求 2. 方案介绍 3. 遇到的问题 4. 团队简介 3 背景 Rust是一门新兴的系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范 式的多范式语言。 openGauss数据库是一款高性能、高安全的数据库,社区支持Rust驱动可以更方便Rust语言开发者更好地基 12 遇到的问题 • 版本问题 • 鉴权方式始终是MD5的问题 • 测试服务器 13 团队简介 纪凤楠 十一年研发工作经验。工作中主要是使用 JAVA 语言。 目前就职于中软国际,任职架构师。虽然是从事技术工作,但个人认为技术要为业务服务,因此也非常重视对业务的理 解,力图为业务量身打造最合适的技术实现。 Thank you.0 码力 | 14 页 | 566.24 KB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 国信通产业集团等电力能源行业提供数据智能产品解决方案及长期服务。 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 图数据中进行知识 发现的重要需求。最终获得国内外授权发明专利 43 项, CCF -A 类论文 51 篇,获得 2 次国际竞赛冠军,参与了 2 项图计算相关标准制定。 AtlasGraph 架构及实现 图技术简介 Takeway “ 世界是复杂关系的总和”—— 一张典型的知识图谱 电话 / 同通讯录 / 绑定同账户 /... Mac 地址 /IP 地址 /wifi... 亲属 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景 路径识别 群体挖掘 节点识别 相似节点 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 …  人与人、企业与企业、企业与人之间的 复杂、潜在关系推导和挖掘  为已有的分析模型增加“关系特征”维0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 国信通产业集团等电力能源行业提供数据智能产品解决方案及长期服务。 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 图数据中进行知识 发现的重要需求。最终获得国内外授权发明专利 43 项, CCF -A 类论文 51 篇,获得 2 次国际竞赛冠军,参与了 2 项图计算相关标准制定。 AtlasGraph 架构及实现 图技术简介 Takeway “ 世界是复杂关系的总和”—— 一张典型的知识图谱 电话 / 同通讯录 / 绑定同账户 /... Mac 地址 /IP 地址 /wifi... 亲属 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景 路径识别 群体挖掘 节点识别 相似节点 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 …  人与人、企业与企业、企业与人之间的 复杂、潜在关系推导和挖掘  为已有的分析模型增加“关系特征”维0 码力 | 38 页 | 24.68 MB | 1 年前3
 Rust分布式账务系统 - 胡宇东京 班加罗尔 阿姆斯特丹 西安 马来西亚 币种 50+ 国家 130+ 办公地点 19 1300+ 员工 提供高效,低成本的数字银行服务 关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的 服务 超低延迟:实时交易,超低响应延迟 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘0 码力 | 27 页 | 12.60 MB | 1 年前3 Rust分布式账务系统 - 胡宇东京 班加罗尔 阿姆斯特丹 西安 马来西亚 币种 50+ 国家 130+ 办公地点 19 1300+ 员工 提供高效,低成本的数字银行服务 关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的 服务 超低延迟:实时交易,超低响应延迟 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘0 码力 | 27 页 | 12.60 MB | 1 年前3
 Rust在物理引擎研发中的应用 崔汉青体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 规则驱动 AI生成 数据驱动 AI加速 云原生架构和 AI 能力 架构特点 性能特点 功能特点 云原生架构 单机架构 动作物理分离 和并发安全 语言内建的 async/await,还有优秀的 crates rayon(计算密集型并发支持)和 tokio(IO 密集型并发支持) 为什么选择 Rust Motphys 物理引擎架构 Broad Phase Narrow Phase Candidate Collision Pairs Manifold Build Collision Pairs Collision Detection motphys-math 为高性能物理引擎量 身定制 增加了 AoSoA 类型, 并做了大量 SIMD 优化 增加了跨端确定性模 式 保证所有设备浮点计算结果 完全一致 性能超越目前开源的 Rust基础数学库 glam nalgebra ultraviolet Generic, procedure macro, or… Generic 表达力不足 不容易做精细性能优化 Procedure0 码力 | 22 页 | 1.18 MB | 1 年前3 Rust在物理引擎研发中的应用 崔汉青体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 规则驱动 AI生成 数据驱动 AI加速 云原生架构和 AI 能力 架构特点 性能特点 功能特点 云原生架构 单机架构 动作物理分离 和并发安全 语言内建的 async/await,还有优秀的 crates rayon(计算密集型并发支持)和 tokio(IO 密集型并发支持) 为什么选择 Rust Motphys 物理引擎架构 Broad Phase Narrow Phase Candidate Collision Pairs Manifold Build Collision Pairs Collision Detection motphys-math 为高性能物理引擎量 身定制 增加了 AoSoA 类型, 并做了大量 SIMD 优化 增加了跨端确定性模 式 保证所有设备浮点计算结果 完全一致 性能超越目前开源的 Rust基础数学库 glam nalgebra ultraviolet Generic, procedure macro, or… Generic 表达力不足 不容易做精细性能优化 Procedure0 码力 | 22 页 | 1.18 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412. . 28 5.6.1 解答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6 控制流基础 29 6.1 if 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2 循环控制 一无所知,本课程可以: • 帮助你全面理解 Rust 的语法和语言。 • 让你可以用 Rust 修改现有程序和编写新程序。 • 为你展示常见的 Rust 习惯用法。 我们将前四天的课程称为“Rust 基础”。 在此基础上,你可以选择深入研究一个或多个专门的主题: • Android:为期半天的课程,介绍如何在 Android 平台开发中使用 Rust(AOSP)。课程内容包括 与 C、C++ 和 Java 12 Rust 基础 前四天的内容是 Rust 基础。这几天的课程节奏很快,内容也很丰富! 课程安排: • Day 1 Morning (2 hours and 5 minutes, including breaks) Segment Duration 欢迎 5 minutes Hello, World 15 minutes 类型和值 40 minutes 控制流基础 40 minutes0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412. . 28 5.6.1 解答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6 控制流基础 29 6.1 if 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2 循环控制 一无所知,本课程可以: • 帮助你全面理解 Rust 的语法和语言。 • 让你可以用 Rust 修改现有程序和编写新程序。 • 为你展示常见的 Rust 习惯用法。 我们将前四天的课程称为“Rust 基础”。 在此基础上,你可以选择深入研究一个或多个专门的主题: • Android:为期半天的课程,介绍如何在 Android 平台开发中使用 Rust(AOSP)。课程内容包括 与 C、C++ 和 Java 12 Rust 基础 前四天的内容是 Rust 基础。这几天的课程节奏很快,内容也很丰富! 课程安排: • Day 1 Morning (2 hours and 5 minutes, including breaks) Segment Duration 欢迎 5 minutes Hello, World 15 minutes 类型和值 40 minutes 控制流基础 40 minutes0 码力 | 359 页 | 1.33 MB | 10 月前3
 Rust 程序设计语言 简体中文版 1.85.0懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你先 阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设你按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同 供的智能 指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 九章是一个模式和模式匹配的参考,它们是在 真实的程序来展示如何运用它们。你将会学到 let、match、方法(methods)、关联函数 (associated functions)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将主要练习基础内容。 我们会实现一个经典的新手编程问题:猜数字游戏。游戏的规则如下:程序将会生成一个 1 到 100 之间的随机整数。然后提示玩家输入一个猜测值。输入后,程序会指示该猜测是太低还是 太高。如果猜对了,游戏会打印祝贺信息并退出。0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你先 阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设你按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同 供的智能 指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 九章是一个模式和模式匹配的参考,它们是在 真实的程序来展示如何运用它们。你将会学到 let、match、方法(methods)、关联函数 (associated functions)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将主要练习基础内容。 我们会实现一个经典的新手编程问题:猜数字游戏。游戏的规则如下:程序将会生成一个 1 到 100 之间的随机整数。然后提示玩家输入一个猜测值。输入后,程序会指示该猜测是太低还是 太高。如果猜对了,游戏会打印祝贺信息并退出。0 码力 | 562 页 | 3.23 MB | 25 天前3
 Rust 程序设计语言简体中文版读懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你 先阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第 真实的程序来展示如何运用它们。你将会学到 let 、match 、方法(method)、关联函数 (associated function)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将练习基础内容。 我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的随机整数。接着它会请玩家猜一个数并输入,然后提示猜测是大了还是小了。 如果猜对了,它会打印祝贺信息并退出。 所特有的,不过我们会在 Rust 上下 文中讨论它们,并解释使用这些概念的惯例。 具体来说,我们将会学习变量、基本类型、函数、注释和控制流。每一个 Rust 程序中都会用 到这些基础知识,提早学习这些概念会让你在起步时就打下坚实的基础。 关键字 Rust 语言有一组保留的 关键字(keywords),就像大部分语言一样,它们只能由语言 本身使用。记住,你不能使用这些关键字作为变量或函数的名称。大部分关键字有特0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版读懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你 先阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第 真实的程序来展示如何运用它们。你将会学到 let 、match 、方法(method)、关联函数 (associated function)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将练习基础内容。 我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的随机整数。接着它会请玩家猜一个数并输入,然后提示猜测是大了还是小了。 如果猜对了,它会打印祝贺信息并退出。 所特有的,不过我们会在 Rust 上下 文中讨论它们,并解释使用这些概念的惯例。 具体来说,我们将会学习变量、基本类型、函数、注释和控制流。每一个 Rust 程序中都会用 到这些基础知识,提早学习这些概念会让你在起步时就打下坚实的基础。 关键字 Rust 语言有一组保留的 关键字(keywords),就像大部分语言一样,它们只能由语言 本身使用。记住,你不能使用这些关键字作为变量或函数的名称。大部分关键字有特0 码力 | 600 页 | 12.99 MB | 1 年前3
 基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭王⽂庭 基于边缘架构的可编程MQTT服务 CONTENTS 背景说明 O1 O2 O4 HPMQ简介 HPMQ开发说明 HPMQ未来规划 O3 1. 背景说明 物联⽹时代带来的变化 海量 连⽹ 设备 海量数据处理? 设备安全性? 共性:边缘 原来以数据中 ⼼为核⼼的云 端架构是否还 满⾜需求? 01 02 03 边缘架构 ⼀种分布式计 算架构 构成边缘 计算架构 计算架构 的核⼼ 可在边缘直接对数据进⾏相 关的计算(处理/存储)并提 供相应的查询功能 边缘架构 物联⽹设备的纽带 2. HPMQ 简介 HPMQ是基于Rust语⾔开发的 下⼀代可编程边缘分布式 MQTT软件,主要有以下⼏个 核⼼特性: • Geo-Distributed • 可编程性 • 云边⼀体化 • 兼容异构设备 HPMQ (Hyperconverged Programmable 对WebAssembly⽣态⽀持友好 Why Rust? • 云端架构,我们⽆法根据设备地理位置实现就近通讯 • 只能做到在数据中⼼内相关的分布式扩展,⽆法直接进⾏ 全球节点的扩展 • 复杂的容灾⽅案 为什么需要geo-distributed 传统⽅案存在有问题 解决⽅案 geo-distributed架构 + 调度 如何管理分布式⽹络 我们主要基于eclipse-zenoh来做⼆次开0 码力 | 31 页 | 3.95 MB | 1 年前3 基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭王⽂庭 基于边缘架构的可编程MQTT服务 CONTENTS 背景说明 O1 O2 O4 HPMQ简介 HPMQ开发说明 HPMQ未来规划 O3 1. 背景说明 物联⽹时代带来的变化 海量 连⽹ 设备 海量数据处理? 设备安全性? 共性:边缘 原来以数据中 ⼼为核⼼的云 端架构是否还 满⾜需求? 01 02 03 边缘架构 ⼀种分布式计 算架构 构成边缘 计算架构 计算架构 的核⼼ 可在边缘直接对数据进⾏相 关的计算(处理/存储)并提 供相应的查询功能 边缘架构 物联⽹设备的纽带 2. HPMQ 简介 HPMQ是基于Rust语⾔开发的 下⼀代可编程边缘分布式 MQTT软件,主要有以下⼏个 核⼼特性: • Geo-Distributed • 可编程性 • 云边⼀体化 • 兼容异构设备 HPMQ (Hyperconverged Programmable 对WebAssembly⽣态⽀持友好 Why Rust? • 云端架构,我们⽆法根据设备地理位置实现就近通讯 • 只能做到在数据中⼼内相关的分布式扩展,⽆法直接进⾏ 全球节点的扩展 • 复杂的容灾⽅案 为什么需要geo-distributed 传统⽅案存在有问题 解决⽅案 geo-distributed架构 + 调度 如何管理分布式⽹络 我们主要基于eclipse-zenoh来做⼆次开0 码力 | 31 页 | 3.95 MB | 1 年前3
 Rust 语言学习笔记语言的读者。在学习过程中我对二份开源书籍进行了适 合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习 笔记。这份学习笔记的主要贡献在于涵盖了所有工程上基于 Rust 进行开发需要 掌握的基础知识,并且重新调整了目录结构。 我个人对 Rust 语言设计的看法主要是:重大创新,却又博采众长。 Rust 为了解决内存安全问题重新设计了类型系统,提出了所有权的概念,同时 为了能够解决当 2.Rust 中的一个文件内,可包含多个模块,直接将 a::b::c::d 映射到 a/b/c/d.rs 会引起一些歧义; 3.Rust 一切从安全性、显式化立场出发,要求引用路径中的每一个节点,都是 一个有效的模块,比如上例,d 是一个有效的模块的话,那么,要求 c, b, a 分别都是有效的模块,可单独引用。 1.2.7 prelude Rust 的标准库,有一个 prelude 0。但是我们依然可以针对这样的类型实现它的“成员 函数”。 4.1.3 结构体的方法 Rust 没有继承,它和 Golang 不约而同的选择了 trait(Golang 叫 Interface)作 为其实现多态的基础。 不同的是,golang 是匿名继承,rust 是显式继承。如果需要实现匿名继承的话, 可以通过隐藏实现类型可以由 generic 配合 trait 作出。 struct Person {0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记语言的读者。在学习过程中我对二份开源书籍进行了适 合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习 笔记。这份学习笔记的主要贡献在于涵盖了所有工程上基于 Rust 进行开发需要 掌握的基础知识,并且重新调整了目录结构。 我个人对 Rust 语言设计的看法主要是:重大创新,却又博采众长。 Rust 为了解决内存安全问题重新设计了类型系统,提出了所有权的概念,同时 为了能够解决当 2.Rust 中的一个文件内,可包含多个模块,直接将 a::b::c::d 映射到 a/b/c/d.rs 会引起一些歧义; 3.Rust 一切从安全性、显式化立场出发,要求引用路径中的每一个节点,都是 一个有效的模块,比如上例,d 是一个有效的模块的话,那么,要求 c, b, a 分别都是有效的模块,可单独引用。 1.2.7 prelude Rust 的标准库,有一个 prelude 0。但是我们依然可以针对这样的类型实现它的“成员 函数”。 4.1.3 结构体的方法 Rust 没有继承,它和 Golang 不约而同的选择了 trait(Golang 叫 Interface)作 为其实现多态的基础。 不同的是,golang 是匿名继承,rust 是显式继承。如果需要实现匿名继承的话, 可以通过隐藏实现类型可以由 generic 配合 trait 作出。 struct Person {0 码力 | 117 页 | 2.24 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Rust 版最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 能够帮助到你! i 目 录 第 0 章 前言 1 0.1 关于本书 . . . . . . . . . . . . . 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.3 图的遍历 . . . .0 码力 | 387 页 | 18.51 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Rust 版最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最受欢迎的方法,简单、直接且有效。然而刷题就如同玩“扫雷”游戏,自学能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 能够帮助到你! i 目 录 第 0 章 前言 1 0.1 关于本书 . . . . . . . . . . . . . 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.3 图的遍历 . . . .0 码力 | 387 页 | 18.51 MB | 10 月前3
共 33 条
- 1
- 2
- 3
- 4













