Hello 算法 1.2.0 简体中文 Rust 版如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。因此在数 据结构与算法的设计中,内存资源是一个重要的考虑 选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据 此变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。先根据扩容倍数创建一个更大的数组,再将 当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 � 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉 及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素 选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据 此变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。先根据扩容倍数创建一个更大的数组,再将 当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.1.0 Rust版如果感觉以下内容理解困难,可以在读完“栈”章节后再来复习。 那么,迭代和递归具有什么内在联系呢?以上述递归函数为例,求和操作在递归的“归”阶段进行。这意味 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素 选择 10 作为初始容量。 ‧ 数量记录:声明一个变量 size ,用于记录列表当前元素数量,并随着元素插入和删除实时更新。根据 此变量,我们可以定位列表尾部,以及判断是否需要扩容。 ‧ 扩容机制:若插入元素时列表容量已满,则需要进行扩容。先根据扩容倍数创建一个更大的数组,再将 当前数组的所有元素依次移动至新数组。在本示例中,我们规定每次将数组扩容至之前的 2 倍。 // === File:0 码力 | 388 页 | 18.50 MB | 1 年前3
Rust 语言学习笔记. 102 7.5.1 控制访问顺序--等待与通知 ................................................... 103 7.5.2 控制访问顺序的机制-原子类型与锁 ........................................ 104 7.6 并行 ..................................... Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 做到了内存安全而无需 .NET 和 Java 编程语言中实现自动垃圾收集器的 开销,这是通过所有权/借用机制、生命周期、以及类型系统来达到的。 Rust 程序设计语言的本质在于赋能(empowerment):无论你现在编写的是何 种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信。 比 语言一样,在局部变量离开作用域后,变量随即会被销毁;但不同是, Rust 会连同变量绑定的内存,不管是否为常量字符串,连同所有者变量一起被 销毁释放。 3.1.3 移动语义 在 Rust 中,和“绑定”概念相辅相成的另一个机制就是“转移 move 所有 权”,意思是,可以把资源的所有权(ownership)从一个绑定转移(move)成另 一个绑定,这个操作同样通过 let 关键字完成,和绑定不同的是,=两边的左值 和右值均为两个标识符:0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 202412本身就是一个功能强大且全面的工具。它能够实现许多高级功能,包括 但不限于: * 项目/软件包结构 * 工作区 * 开发依赖和运行时依赖管理/缓存 * 构建脚本 * 全局安装 * 它还可以使用子命令插件(例如 cargo clippy)进行扩展。 – 详情请参阅 官方 Cargo Book 2.2 本培训中的代码示例 在本培训中,我们将主要通过示例探索 Rust 语言,这些示例可以通过浏览器执行。这能大大简化配置过 Java、Go、Python、JavaScript......:你可以得到和这些语言相同的内存安全特性,并拥 有类似的使用高级语言的感受。同时你可以得到类似 C 和 C++ 的高速且可预测的执行性能(无垃圾 回收机制),以及在需要时对底层硬件的访问。 4.3 Playground The Rust Playground provides an easy way to run short Rust programs 特征 5 minutes thiserror 和 anyhow 5 minutes 练习:使用 Result 进行重写 30 minutes 29.1 Panics Rust 通过“panic”机制处理严重错误。 如果运行时发生严重错误,Rust 会触发 panic: fn main() { let v = vec![10, 20, 30]; println!("v[100]: {}",0 码力 | 359 页 | 1.33 MB | 10 月前3
运⾏在浏览器中的 P2P ⽹络 - 李敏成⽹络 李敏成 from RingsNetwork Montivation 连接所有钱包持有者 去中⼼化的 Pure P2P ⽹络 The Idea 最好的节点载体是浏览器 ⽤户群体 钱包插件 运⾏环境 How to P2P Did: Wallet Address E2E secure(sign/encryption): Wallet Discovery and Routing for Geeks Validator MessageCallback Native Backend WASM Backend (WIP) Future Inside 运⾏时抽象 节点共识机制 ⼤规模节点集成测试 Outside 跨平台的 WASM Backend Backend 开发⽂档 Contact Us Twitter: @ringsnetworkio Email:0 码力 | 23 页 | 1.74 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0Cargo 只针对 src/main.rs 文件的微小修改而更新构建。依赖没有变化,所以 Cargo 知道它可以复用已经为此下载并编译的代码。 Cargo.lock 文件确保可重现构建 Cargo 有一个机制,确保无论是你还是其他人在任何时候重新构建代码,都会生成相同的构建 产物:Cargo 只会使用你指定的依赖版本,除非你明确指定其他版本。例如,如果下周 rand crate 的 0.8.6 版本出来了,该版本包含了一个重要的 这样当提供了一个不正确的索引时,就会访问无效的内存。通过立即退出而不是允许内存访问 49/562Rust 程序设计语言 简体中文版 并继续执行,Rust 让你避开此类错误。第九章会更详细地讨论 Rust 的错误处理机制,以及如 何编写可读性强而又安全的代码,使程序既不会 panic 也不会导致非法内存访问。 50/562Rust 程序设计语言 简体中文版 函数 函数在 Rust 代码中非常普遍。你已经见过语言中最重要的函数之一:main 67/562Rust 程序设计语言 简体中文版 什么是所有权? 所有权(ownership)是 Rust 用于如何管理内存的一组规则。所有程序都必须管理其运行时使 用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的 内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过 所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规0 码力 | 562 页 | 3.23 MB | 27 天前3
Rust 程序设计语言简体中文版文件的微小修改而更新构建。依赖没有变化,所以 Cargo 知道它可以复用已经为此下载并编译的代码。它只是重新构建了部分(项目)代码。 Cargo.lock 文件确保构建是可重现的 Cargo 有一个机制来确保任何人在任何时候重新构建代码,都会产生相同的结果:Cargo 只会 使用你指定的依赖版本,除非你又手动指定了别的。例如,如果下周 rand crate 的 0.8.6 版 本出来了,它修复了一个重要的 安全原则的例子。在很多底层语言中,并没有进行这类检查, 这样当提供了一个不正确的索引时,就会访问无效的内存。通过立即退出而不是允许内存访问 并继续执行,Rust 让你避开此类错误。第九章会更详细地讨论 Rust 的错误处理机制,以及如 何编写可读性强而又安全的代码,使程序既不会 panic 也不会导致非法内存访问。 54/600 Rust 程序设计语言 简体中文版 3 . 3 . 函 数 函数 Rust 的核心功能(之一)是 所有权(ownership)。虽然该功能很容易解释,但它对语言的其 他部分有着深刻的影响。 所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序 运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。 Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则 进行检查。如果违反0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 到底香不香?Meetup Kotlin 协程那些事儿 2020.10 / 11 GDG DevFest / 全球移动开发者峰会 Kotlin多平台在移动端应用与展望 2021.7 GDG 社区说 Kotlin 编译器插件:我们究竟在期待什么? 2021.11 / 12 GDG DevFest / Kotlin 中文开发者大会 从注解处理器 KAPT 到 符号处理器 KSP 2022.9 GDG 社区说 KLUE:统一 KLUE:统一 JS 调用 Native 函数的体验 2022.10 GDG DevFest 小猿口算 Android 项目优化实践 2023.4 GDG 社区说 如何开发一款 Kotlin 编译器插件 2023.5 Kotlin 北京 Meetup 你想知道的 Jetpack Compose 的编译器黑魔法 Rust 锈 需求背景 实现思路 Hello0 码力 | 10 页 | 484.75 KB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐且废弃此版本,对于密码算法进行了更新,使用更安全的密码算法; • RFC 8998:基于 RFC 8446,扩展通用 TLS 1.3,增加国密套件支持,声明 SM4_GCM_SM3 、 SM4_CCM_SM3 以及 SM2 单证书机制在 TLS 1.3 中的使用; • 当前 360 安全浏览器、奇安信可信浏览器等产品已支持 TLCP 协议,部分银行或金融产品仅允许通过 TLCP 协议进行 通信。 国密算法在 TLS 安全协议中的应用 Resumption机制 • SM4GCMSM3 • Sm2国密双证书 • Sm2 GMT ECDHE • Sm2ECC • 国际通用密码套 • 单证书机制 • Resumption + Ticket机制 • SM4GCMSM3 • Sm2国密单/双证书 • Sm2 IEEE ECDHE • Sm2ECC 1 2 3 • 国际通用密码套 • 单证书机制 • Resumption Resumption + Ticket机制 • SM4GCMSM3 • Sm2国密单证书 • Sm2 IEEE ECDHE ylong_tls 支持版本以及特性 提供C-API接口方便C语言使用 ylong_tls Rust Adapt C-API (.h + so\.a) C APP Rust APP Rust纯软件实现 指令加速(X86、ARM) no_std版本 可兼容Openssl的0 码力 | 44 页 | 3.70 MB | 1 年前3
共 23 条
- 1
- 2
- 3













