Rust 程序设计语言 简体中文版 1.85.0目录中的 main.rs 文件。 这也会在 hello_cargo 目录初始化了一个 git 仓库,以及一个 .gitignore 文件。如果在一个已经 存在的 git 仓库中运行 cargo new,则这些 git 相关文件则不会生成;可以通过运行 cargo new --vcs=git 来覆盖这些行为。 注意:git 是一个常用的版本控制系统(version control system,VCS)。可以通过 即便 hello_cargo 项目十分简单,它现在也使用了很多在你之后的 Rust 生涯将会用到的实用 工具。其实,要在任何已存在的项目上工作时,可以使用如下命令通过 Git 检出代码,移动到 该项目目录并构建: $ git clone example.org/someproject $ cd someproject $ cargo build 关于更多 Cargo 的信息,请查阅 其文档。 secret_number 调用 cmp 返回的 Ordering 成员来决定接下来做什么。 一个 match 表达式由 分支(arms) 构成。一个分支包含一个 模式(pattern)和表达式开头 的值与分支模式相匹配时应该执行的代码。Rust 获取提供给 match 的值并挨个检查每个分支 的模式。match 结构和模式是 Rust 中强大的功能,它体现了代码可能遇到的多种情形,并确 保对所有情况作出0 码力 | 562 页 | 3.23 MB | 21 天前3
Comprehensive Rust(简体中文) 202412共有三个发布阶段:“稳定版(stable)”、 “测试版(beta)”和“夜间版(nightly)”。 • 新功能会先在“夜间版”上测试, “测试版”会每六周转为“稳定版”。 • 依赖关系也可以通过其他 registry、git 及文件夹等解析。 • Rust 区分版本(edition):当前版本是 Rust 2021。之前的版本是 Rust 2015 和 Rust 2018。 – 这些版本支持对语言进行向后不兼容的更改。 of the block, if any. In the example above, the type is (). 模式中的变量(本例中为 key)将创建一个可在匹配分支内使用的绑定。 只有当条件为真时,保护语句才能使分支匹配成功。 58 关键点: • You might point out how some specific characters are being used when 有些想法比模式本身所允许的程度更加复杂,如果我们希望简要地表达这些想法,就必须把匹配守 卫视为独立的语法功能。 • 它们与匹配分支中的单独“if”表达式不同。选择匹配分支后,分支块内(在“=>”之后)会出现“if”表 达式。如果该分支块内的“if”条件失败,系统不会考虑原始“match”表达式的其他分支。 • 只要表达式在包含“|”的模式中,就会适用守卫定义的条件。 12.2 解构 与元组一样,结构体和枚举也可以通过匹配方式进行解构:0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.2.0 简体中文 C# 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 res = Fib(n - 1) + Fib(n - 2); // 返回结果 f(n) return res; } 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 com 212 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Dart 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 res = fib(n - 1) + fib(n - 2); // 返回结果 f(n) return res; } 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 com 212 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Kotlin 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 res = fib(n - 1) + fib(n - 2) // 返回结果 f(n) return res } 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 com 214 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 382 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 简体中文 JavaScript 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 res = fib(n - 1) + fib(n - 2); // 返回结果 f(n) return res; } 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 com 212 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Swift 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 fib(n: n - 1) + fib(n: n - 2) // 返回结果 f(n) return res } 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 的元素靠近。 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Ruby 版第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 可。 第 f(n-2) res = fib(n - 1) + fib(n - 2) # 返回结果 f(n) res end 观察以上代码,我们在函数内递归调用了两个函数,这意味着从一个调用产生了两个调用分支。如图 2‑6 所 示,这样不断递归调用下去,最终将产生一棵层数为 ? 的递归树(recursion tree)。 图 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子 的元素靠近。 循环完成后,? 指向最左边的 target ,? 指向首个小于 target 的元素,因此索引 ? 就是插入点。 图 10‑6 二分查找重复元素的插入点的步骤 观察以下代码,判断分支 nums[m] > target 和 nums[m] == target 的操作相同,因此两者可以合并。 即便如此,我们仍然可以将判断条件保持展开,因为其逻辑更加清晰、可读性更好。 第 10 章0 码力 | 372 页 | 18.44 MB | 10 月前3
Comprehensive Rust(繁体中文)channel) 分為三種:「穩定版」、 「Beta 版」和「Nightly 版」。 • 「Nightly 版」會用於測試新功能, 「Beta 版」則會每六週成為「穩定版」。 • 您也可以透過其他註冊資料庫、git、資料夾等管道解析依附元件。 • Rust 還具有 [版本] (edition):目前版本為 Rust 2021。先前版本為 Rust 2015 和 Rust 2018。 – 這些版本可針對語言進行回溯不相容的變更。 有些概念比模式本身所允許的更加複雜,如果我們希望簡要地表達這些想法,就必須把配對守衛視 為獨立的語法功能。 • 這與配對分支內的個別 if 運算式不同。分支區塊中的 if 運算式 (位於 => 之後) 會在選取配對分 支後發生。即使該區塊內的 if 條件失敗,系統也不會考量原始 match 運算式的其他分支。 • 只要運算式隸屬於具備 | 的模式之中,就會套用守衛定義的條件。 12.2 解構列舉 就像元組,結構體和列舉也可透過配對來解構: happened: {msg}"), } } 這裡我們利用分支來「解構」Result 值。在第一個分支中,half 會與 Ok 變體中的值綁定。在第二個分 支中,msg 會綁定至錯誤訊息。 結構體 • 請變更 foo 中的常值,與其他模式配對。 • 在 Foo 中新增一個欄位,並視需要變更模式。 • 捕獲和常數運算式之間的區別可能不容易發現。請嘗試將第二個分支的 2 變更為變數,您會發現它 幾乎無法運作。現在將其變更為0 码力 | 358 页 | 1.41 MB | 10 月前3
Service Mesh Meetup #3 深圳站微服务架构 • 各种语言、各种框架或子系统 • 各种数据源 • ServiceMesh一般的开发流程 • 1. 开启一个新的 feature; • 2. Developer 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发并自测后,提交 merge request(MR)请求合并到 develop 分 支;(执行单元测试,测试状态呈现 • 4. Reviewer 对 MR 进行 code review ,批准合并之后, feature/new_branch 会合并到 develop; • 5. 部署负责人将 develop 分支代码部署到测试环境,然后再通知 QA 测试;(脚本或者人工)有什么问题? • 效率低 • 没有代码检查; • 没有自动化测试(包括单元测试); • 沟通成本高 • 开发需要通知负责人、测试、产品等;(而且是每次构建/部署 依赖多较好的开发流程(流程化、自动化) • 1. 开启一个新的 feature; • 2. Devloper 从 develop 分支新建一个 feature/new_branch 来做特定 feature 的开发; • 3. 开发完成后,提交 merge request(MR)请求合并到 develop 分支; • 4. MR 触发 Jenkins,Jenkins/Drone 触发 Sonar 代码质量检测系统; •0 码力 | 45 页 | 18.62 MB | 6 月前3
共 182 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19













