Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 8.2. 使用字符串储存 UTF-8 编码的文本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9. 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 9.1. 用 panic! 处理不可恢复的错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.2. 用 Result 处理可恢复的错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 26 天前3
Comprehensive Rust(简体中文) 202412. . 106 19.8.1 解答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 20 智能指针 110 20.1 Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 . . . . . . . . . . . . . . . . . . . . . . . . . 159 VIII 第四天:下午 162 28 Welcome Back 163 29 错误处理 164 29.1 Panics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 . . . . . . . . . . . . . . . . . . . 214 37.2.7 Rust 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 37.2.8 C++ 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 语言学习笔记4.2 BOX .................................................................................. 75 6.5 智能指针 .................................................................................... 77 6.5.1 Rc与 ............................................................................. 112 10.1 Result 与错误处理 ..................................................................... 112 10.1.1 匹配不同的错误 ....... API 文档注释的内容,他们意在让对库感兴趣的程序员理解如何 使用 这个 crate,而不是它是如何被 实现 的。 文档注释使用三斜杠 /// 而不是两斜杆并支持 Markdown 注解来格式化文本。 文档注释就位于需要文档的项的之前。 模块注释使用 //! ,行注释使用 // 模块注释和文档注释用起来非常舒服的,远比/* */舒服,IDEA 对它支持很好, 提供自动换行。 2.20 码力 | 117 页 | 2.24 MB | 1 年前3
Hello 算法 1.1.0 Rust版o 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 Question 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, …0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版o 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 Question 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, …0 码力 | 387 页 | 18.51 MB | 10 月前3
Rust 程序设计语言简体中文版........................................................................ 167 8.2. 使用字符串储存 UTF-8 编码的文本 ............................................................................. 172 8.3. 使用 Hash Map ......................................................................................... 369 15. 智能指针 ................................................................................................ ........................................................................ 371 15.2. 使用 Deref Trait 将智能指针当作常规引用处理 ........................................................ 377 15.3. 使用 Drop Trait 运行清理代码0 码力 | 600 页 | 12.99 MB | 1 年前3
Hello 算法 1.0.0 Rust版2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 图 2‑5 尾递归过程 � 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化, 因此即使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 � 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … ,求该数列的第 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。 表 2‑1 迭代与递归特点对比0 码力 | 383 页 | 17.61 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人等 100+ 公安机构,国家电网、 国信通产业集团等电力能源行业提供数据智能产品解决方案及长期服务。 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 年中国电子学会科学技术奖科技进步一等奖 中国电子学会发布的《 2022 中国电子学会科学技术奖公告》,海 致星图与北京邮电大学、蚂蚁科技集团有限公司、中移动信息技术 有限公司联合研发的“大规模复杂异质图数据智能分析技术与规模化 应用”项目,斩获“科学技术奖科技进步一等奖”,这也是国内电子信 息领域的最高奖项。 该奖项由数十名院士评审,历经三轮,从三百余个申报项目中遴选 而出。由院士等组成的科技成果鉴定委员会认为:“该成果技术复杂0 码力 | 38 页 | 24.68 MB | 1 年前3
Rust 在算法交易中的实际应用与积极效应第三届中国Rust开发者大会 Rust 在算法交易中的实际应用 与积极效应 非凸科技首席架构师 乔丹 上海非凸智能科技有限公司(简称“非凸科技”)成 立于2018年,是国内领先的智能算法和交易系统服 务公司,专注于智能算法交易领域的研究和开发。 公司正基于Rust生态,结合机器学习、深度学习等新 兴技术,打造高效率、低延迟、高可靠、全内存高频 交易平台,满足自身在量化行业交易业务的同时也为 交易平台,满足自身在量化行业交易业务的同时也为 券商、量化私募等众多大型金融机构提供优质的算法 交易解决方案。 公司介绍 证监会信息技术系统备案 国家高新技术企业 科技型中小企业 双软企业资质认证 智能投研技术联盟核心成员 100+ 团队规模 80亿+ 日均成交额 100+ 合作机构 公司结构 50% 工程师 20% 策略研究 20% 运维中台 10% 市场商务 上海 徐汇漕河泾 总部 浦东世纪汇 研发中心 Rust 在非凸算法交易服务中的全栈应用实践 内 部 智 能 引 擎 行情服务 总控模块 预测模型 策略模块 数据总线 智 能 特 征 工 程 去量纲:标准化、归一化 缺失值处理:样条插值 降维:PCA A I 信 号 生 成 LSTM 神经网络 BP 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数0 码力 | 18 页 | 3.49 MB | 1 年前3
基于静态分析的Rust内存安全缺陷检测研究▪ 手动释放内存或调用析构函数 ▪ 函数返回时发生的自动析构或内存释放 ❑ Rust设计的目标之一是编译时检查指针别名(共享可变引用) ▪ 但一般意义上的指针分析是NP-hard问题 ▪ 智能指针可行,但作为运行时方案,效率低 ▪ Rust在语法设计中引入所有权机制,简化指针分析问题 Rust所有权模型 => XOR Mutability ❑ 一个对象有且只有一个所有者 ❑ 所有权可以转移给其它变量 bob自动归还Box对象, alice恢复修改权 如果需要违背XOR Mutability怎么办? ❑ 以双向链表为例,中间节点被前后两个节点访用 ❑ Rust为了提升可用性所做的妥协 ▪ 智能指针(性能损失) ▪ 允许使用裸指针(unsafe模式) • 逃逸编译器的借用检查 => 指针别名 next prev next prev next prev struct List{ struct List{ val: u64, prev: Option>>, next: Option >>, } 方法一:智能指针 方法二:允许使用裸指针 Unsafe Rust ❑ Unsafe Rust功能: ▪ 解引用裸指针 ▪ 调用unsafe函数 ▪ 调用FFI(其它语言接口) ❑ 使用条件:必须标注unsafe 0 码力 | 28 页 | 1.55 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4













