 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3
 Rust 语言学习笔记Rust 使用实现(implementation)、特征(trait)和结构化类型 (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 做到了内存安全而无需 .NET 和 Java 编程语言中实现自动垃圾收集器的 开销,这是通过所有权/借用机制、生命周期、以及类型系统来达到的。 } // 匿名函数中的 FnOnce/FnMut/Fn // 首先 FnOnce/FnMut/Fn 这三个东西被称为 Trait, // 默认情况下它们是交给 rust 编译器去推理的, 大致的推理原则是: // FnOnce: 当指定这个 Trait 时, 匿名函数内访问的外部变量必须拥有所有权. // FnMut: 当指定这个 Trait 时, 匿名函数可以改变外部变量的值 "anonymous_fnonce"; let mut b = String::from("hello"); // 通过使用 move 的方式, 把所有权转移进来, rust 编译器 // 会自动推理出这是一个 FnOnce Trait 匿名函数. let pushed_data = move || { // 由于所有权转移进来, 因此 b 已经被移除掉.0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记Rust 使用实现(implementation)、特征(trait)和结构化类型 (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 做到了内存安全而无需 .NET 和 Java 编程语言中实现自动垃圾收集器的 开销,这是通过所有权/借用机制、生命周期、以及类型系统来达到的。 } // 匿名函数中的 FnOnce/FnMut/Fn // 首先 FnOnce/FnMut/Fn 这三个东西被称为 Trait, // 默认情况下它们是交给 rust 编译器去推理的, 大致的推理原则是: // FnOnce: 当指定这个 Trait 时, 匿名函数内访问的外部变量必须拥有所有权. // FnMut: 当指定这个 Trait 时, 匿名函数可以改变外部变量的值 "anonymous_fnonce"; let mut b = String::from("hello"); // 通过使用 move 的方式, 把所有权转移进来, rust 编译器 // 会自动推理出这是一个 FnOnce Trait 匿名函数. let pushed_data = move || { // 由于所有权转移进来, 因此 b 已经被移除掉.0 码力 | 117 页 | 2.24 MB | 1 年前3
 Hello 算法 1.1.0 Rust版杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结0 码力 | 388 页 | 18.50 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Rust 版杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 www.hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数0 码力 | 387 页 | 18.51 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Rust 版杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 www.hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数0 码力 | 387 页 | 18.51 MB | 10 月前3
 Hello 算法 1.0.0 Rust版1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结 为「渐近复杂度分析 asymptotic complexity analysis」,简称「复杂度分析」。 复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。它描述了随着输入数据大 小的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应「时间复杂度 time complexity」和「空间复杂度 space0 码力 | 383 页 | 17.61 MB | 1 年前3 Hello 算法 1.0.0 Rust版1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结 为「渐近复杂度分析 asymptotic complexity analysis」,简称「复杂度分析」。 复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。它描述了随着输入数据大 小的增加,算法执行所需时间和空间的增长趋势。这个定义有些拗口,我们可以将其分为三个重点来理解。 ‧“时间和空间资源”分别对应「时间复杂度 time complexity」和「空间复杂度 space0 码力 | 383 页 | 17.61 MB | 1 年前3
 Hello 算法 1.2.0 繁体中文 Rust 版內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 “一本通俗易懂的資料結構與演算法入門書,引導讀者手腦並用地學習,強烈推薦演算法初學者閱讀!” ——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 貨幣找零過程 在以上步驟中,我們每一步都採取當前看來最好的選擇(儘可能用大面額的貨幣),最終得到了可行的找零方 案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫 CPU 和 GPU 執行演算法。這樣一來,我們就能把 生活中的問題0 码力 | 388 页 | 18.82 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Rust 版內的展示效果有限,可訪問 www.hello‑algo.com 網頁版以獲得更佳的閱讀體驗。 推薦語 “一本通俗易懂的資料結構與演算法入門書,引導讀者手腦並用地學習,強烈推薦演算法初學者閱讀!” ——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 貨幣找零過程 在以上步驟中,我們每一步都採取當前看來最好的選擇(儘可能用大面額的貨幣),最終得到了可行的找零方 案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫 CPU 和 GPU 執行演算法。這樣一來,我們就能把 生活中的問題0 码力 | 388 页 | 18.82 MB | 10 月前3
 Comprehensive Rust(简体中文) 202412{x}"); } • 取消备注 x = 20,以证明变量默认是不可变的。添加 mut 关键字以允许进行更改。 • 这里的 i32 是变量的类型。编译时必须已知类型,但在很多情况下,由于具有类型推理功能(稍后介 绍),程序员可以忽略这一点。 5.3 值 以下是一些基本的内置类型以及每种类型的字面量值的语法。 类型 字面量 有符号整数 i8、i16、i32、i64、i128、 isize i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 引用被称为“借用”了其所引用的值,这对于不熟悉指针的学生来说是一个很好的模型:代码可以通 过引用来访问值,但原始变量仍然保有对该值的“所有权”。本课程会在第 3 天详细介绍所有权。 43 • 引用是以指针的形式实现的,其关键优势在于它们可以比其所指的内容小得多。熟悉 C 222, 333)); println!("picked a tuple: {:?}", pick(28, ("dog", 1), ("cat", 2))); } • Rust 会根据参数类型和返回值推理出 T 的类型。 • 这与 C++ 模板类似,但 Rust 会立即编译部分通用函数,因此该函数必须对所有符合约束条件的类 型都有效。例如,请尝试修改 pick 函数,如果 n == 0,则返回 even0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412{x}"); } • 取消备注 x = 20,以证明变量默认是不可变的。添加 mut 关键字以允许进行更改。 • 这里的 i32 是变量的类型。编译时必须已知类型,但在很多情况下,由于具有类型推理功能(稍后介 绍),程序员可以忽略这一点。 5.3 值 以下是一些基本的内置类型以及每种类型的字面量值的语法。 类型 字面量 有符号整数 i8、i16、i32、i64、i128、 isize i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 引用被称为“借用”了其所引用的值,这对于不熟悉指针的学生来说是一个很好的模型:代码可以通 过引用来访问值,但原始变量仍然保有对该值的“所有权”。本课程会在第 3 天详细介绍所有权。 43 • 引用是以指针的形式实现的,其关键优势在于它们可以比其所指的内容小得多。熟悉 C 222, 333)); println!("picked a tuple: {:?}", pick(28, ("dog", 1), ("cat", 2))); } • Rust 会根据参数类型和返回值推理出 T 的类型。 • 这与 C++ 模板类似,但 Rust 会立即编译部分通用函数,因此该函数必须对所有符合约束条件的类 型都有效。例如,请尝试修改 pick 函数,如果 n == 0,则返回 even0 码力 | 359 页 | 1.33 MB | 10 月前3
 新一代分布式高性能图数据库的构建 - 沈游人伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖 中国电子学会发布的《 2022 中国电子学会科学技术奖公告》,海 致星图与北京邮电 而出。由院士等组成的科技成果鉴定委员会认为:“该成果技术复杂 度高,研制难度大,创新性强,项目成果整体达到国际先进水平, 其中异质图建模与表示学习技术和超大规模图学习系统处于国际领 先水平。” 以终为始,以行为知,这一项目从图计算所面临的挑战出发,解决了大规模图数据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 …  人与人、企业与企业、企业与人之间的 复杂、潜在关系推导和挖掘  为已有的分析模型增加“关系特征”维 度 客户贡献度 客户信用分 客户忠诚度 客户欺诈分 客户风险度 违约概率 客户资质 … 集团关系 社群关系 欺诈团伙 担保关系 资金圈 / 链 …  设别出带有某种共同特征0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖 中国电子学会发布的《 2022 中国电子学会科学技术奖公告》,海 致星图与北京邮电 而出。由院士等组成的科技成果鉴定委员会认为:“该成果技术复杂 度高,研制难度大,创新性强,项目成果整体达到国际先进水平, 其中异质图建模与表示学习技术和超大规模图学习系统处于国际领 先水平。” 以终为始,以行为知,这一项目从图计算所面临的挑战出发,解决了大规模图数据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 …  人与人、企业与企业、企业与人之间的 复杂、潜在关系推导和挖掘  为已有的分析模型增加“关系特征”维 度 客户贡献度 客户信用分 客户忠诚度 客户欺诈分 客户风险度 违约概率 客户资质 … 集团关系 社群关系 欺诈团伙 担保关系 资金圈 / 链 …  设别出带有某种共同特征0 码力 | 38 页 | 24.68 MB | 1 年前3
 Comprehensive Rust(繁体中文)使用Cargo 您開始閱讀 Rust 內容後,很快就會認識 Cargo,這是在 Rust 生態系統中使用的標準工具,用於建構及執 行 Rust 應用程式。以下簡要介紹 Cargo,以及如何在更廣大的生態系統和本訓練課程中運用 Cargo。 安裝 請按照 https://rustup.rs/ 中的指示操作。 This will give you the Cargo build tool (cargo) 在本訓練課程中,我們主要會透過範例瞭解 Rust 語言,這些範例可在瀏覽器中執行。這麼做可讓設定程 序更輕鬆,並確保所有人獲得一致的體驗。 我們仍建議安裝 Cargo,方便您更輕鬆做習題。在最後一天,我們會做規模較大的習題,讓您瞭解如何使用 依附元件,而這需要使用 Cargo。 本課程的程式碼區塊皆完全為互動式: fn main() { println!("Edit me!"); } You can use 在「Tools」下方點選「rustfmt」選項,以「標準」方式設定程式碼格式。 • Rust 有兩個主要的「設定檔」可產生程式碼,分別是「Debug」(加強執行階段檢查,最佳化程度較低) 和「Release」(減少執行階段檢查,大規模最佳化)。這些設定檔位於頂端的「Debug」下方。 • 感興趣的話,不妨點選「...」下的「ASM」查看產生的組語程式碼。 學員準備休息時,請鼓勵他們開啟 Playground 略微試驗一下。在剩餘的課堂時間,建議他們持續開啟0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文)使用Cargo 您開始閱讀 Rust 內容後,很快就會認識 Cargo,這是在 Rust 生態系統中使用的標準工具,用於建構及執 行 Rust 應用程式。以下簡要介紹 Cargo,以及如何在更廣大的生態系統和本訓練課程中運用 Cargo。 安裝 請按照 https://rustup.rs/ 中的指示操作。 This will give you the Cargo build tool (cargo) 在本訓練課程中,我們主要會透過範例瞭解 Rust 語言,這些範例可在瀏覽器中執行。這麼做可讓設定程 序更輕鬆,並確保所有人獲得一致的體驗。 我們仍建議安裝 Cargo,方便您更輕鬆做習題。在最後一天,我們會做規模較大的習題,讓您瞭解如何使用 依附元件,而這需要使用 Cargo。 本課程的程式碼區塊皆完全為互動式: fn main() { println!("Edit me!"); } You can use 在「Tools」下方點選「rustfmt」選項,以「標準」方式設定程式碼格式。 • Rust 有兩個主要的「設定檔」可產生程式碼,分別是「Debug」(加強執行階段檢查,最佳化程度較低) 和「Release」(減少執行階段檢查,大規模最佳化)。這些設定檔位於頂端的「Debug」下方。 • 感興趣的話,不妨點選「...」下的「ASM」查看產生的組語程式碼。 學員準備休息時,請鼓勵他們開啟 Playground 略微試驗一下。在剩餘的課堂時間,建議他們持續開啟0 码力 | 358 页 | 1.41 MB | 10 月前3
 Comprehensive Rust(繁体中文) 202406使用Cargo 您開始閱讀 Rust 內容後,很快就會認識 Cargo,這是在 Rust 生態系統中使用的標準工具,用於建構及執 行 Rust 應用程式。以下簡要介紹 Cargo,以及如何在更廣大的生態系統和本訓練課程中運用 Cargo。 安裝 請按照 https://rustup.rs/ 中的指示操作。 This will give you the Cargo build tool (cargo) 在本訓練課程中,我們主要會透過範例瞭解 Rust 語言,這些範例可在瀏覽器中執行。這麼做可讓設定程 序更輕鬆,並確保所有人獲得一致的體驗。 我們仍建議安裝 Cargo,方便您更輕鬆做習題。在最後一天,我們會做規模較大的習題,讓您瞭解如何使用 依附元件,而這需要使用 Cargo。 本課程的程式碼區塊皆完全為互動式: fn main() { println!("Edit me!"); } You can use 在「Tools」下方點選「rustfmt」選項,以「標準」方式設定程式碼格式。 • Rust 有兩個主要的「設定檔」可產生程式碼,分別是「Debug」(加強執行階段檢查,最佳化程度較低) 和「Release」(減少執行階段檢查,大規模最佳化)。這些設定檔位於頂端的「Debug」下方。 • 感興趣的話,不妨點選「...」下的「ASM」查看產生的組語程式碼。 學員準備休息時,請鼓勵他們開啟 Playground 略微試驗一下。在剩餘的課堂時間,建議他們持續開啟0 码力 | 356 页 | 1.41 MB | 1 年前3 Comprehensive Rust(繁体中文) 202406使用Cargo 您開始閱讀 Rust 內容後,很快就會認識 Cargo,這是在 Rust 生態系統中使用的標準工具,用於建構及執 行 Rust 應用程式。以下簡要介紹 Cargo,以及如何在更廣大的生態系統和本訓練課程中運用 Cargo。 安裝 請按照 https://rustup.rs/ 中的指示操作。 This will give you the Cargo build tool (cargo) 在本訓練課程中,我們主要會透過範例瞭解 Rust 語言,這些範例可在瀏覽器中執行。這麼做可讓設定程 序更輕鬆,並確保所有人獲得一致的體驗。 我們仍建議安裝 Cargo,方便您更輕鬆做習題。在最後一天,我們會做規模較大的習題,讓您瞭解如何使用 依附元件,而這需要使用 Cargo。 本課程的程式碼區塊皆完全為互動式: fn main() { println!("Edit me!"); } You can use 在「Tools」下方點選「rustfmt」選項,以「標準」方式設定程式碼格式。 • Rust 有兩個主要的「設定檔」可產生程式碼,分別是「Debug」(加強執行階段檢查,最佳化程度較低) 和「Release」(減少執行階段檢查,大規模最佳化)。這些設定檔位於頂端的「Debug」下方。 • 感興趣的話,不妨點選「...」下的「ASM」查看產生的組語程式碼。 學員準備休息時,請鼓勵他們開啟 Playground 略微試驗一下。在剩餘的課堂時間,建議他們持續開啟0 码力 | 356 页 | 1.41 MB | 1 年前3
共 28 条
- 1
- 2
- 3













