首页
Nihil
取消

[译] Rust 中的内联

免责声明 本文是对原博文《Inline In Rust》的无授权翻译转载,不享受任何著作权利,不用于任何商业目的,不以任何许可证进行授权,不对任何转载行为尤其是商业转载行为负责。一切权利均由原作者 Aleksey Kladov 保有。 本文中出现的所有第一人称均指代 Aleksey Kladov 而非译者本人。本文中对一些术语会额外附加英文原文注释,以帮助读者搜索相关概念。 前言 在...

Preview Image

[译] 安全引导与镜像验证技术概览

免责声明 本文是对原文档《Secure Boot and Image Authentication Technical Overview》的无授权翻译,不享受任何著作权利,不用于任何商业目的,不以任何许可证进行授权,不对任何转载行为尤其是商业转载行为负责。一切权利均由原著作权所有者高通公司(QTI,Qualcomm Technologies, Inc.)保有。 本文中出现的所有第一人称均...

Git 从基础到进阶

前言 Git 是什么 想象这么一个场景,你和你的几个同事一起开发一个应用,假设同事 A 修改了代码 1,同事 B 修改了代码 2,你自己修改了代码 3,要如何将你们的修改安全、准确地同步到所有人的电脑上?如果有一天,应用突然运行不了了,你尝试 debug 无果,想要回退到上一次能够正常运行的代码版本,你要如何操作? 这就是为什么我们需要版本控制工具。它们对代码的提交和修改进行纪录,方便...

从实例看 Rust 的 HRTBs

问题 这一天,我像往常一样快乐地水群,一位群友抛出了一张编译报错求解。原版的代码内容太多,这里我先把最简化后的版本放出: trait MyTrait<T> { fn do_sth(&self, r: T); } struct MyStruct; impl<T> MyTrait<T> for MyStruct { fn do_...

USB 2.0 与 USB 3.2

通用串行总线 在 USB 诞生之前,电脑的接口十分混乱,常用的有给键盘、鼠标等使用的 PS/2 接口,有给调制解调器(猫)、控制器(摇杆)、路由器等使用的 COM 接口(也就是串口),有给打印机、摄像头等用的 LPT 接口(也就是并口),除此之外,还有各种各样的接口类型,比如 DNI 接口,TRS 端口(其中 3.5mm 的 TRRS 接口 也就是熟知的 3.5mm 耳机接口)等: P...

Shell 中的管道、重定向、进程替换

管道 相信绝大部分 Linux 用户对管道(Pipe)都不陌生,其语法是: command1 | command2 它的作用是将 command1 的标准输出作为 command2 的标准输入来使用。一个非常典型的例子是 grep,相信大部分人都有使用过形如 command | grep xxx 的命令。 管道的两个命令分别在两个不同的子 shell 中执行,并且没有规定哪个...

Rust 中的闭包递归与 Y 组合子

λ 函数递归 λ 函数也即匿名函数,在 Rust 中体现为闭包(Closure)。在一些语言中,你可以简单地在 λ 函数内调用自己实现递归,例如在 JavaScript 中实现一个阶乘: fact = n => { if (n == 0) return 1; else return n * fact(n - 1); } console.log(fact(5)) //...

Rust 中函数与闭包与 Fn Traits 探讨

闭包 闭包,或者又名匿名函数,lambda 函数,它在官方文档中被定义为可以捕获环境的匿名函数。通常,闭包的定义具有以下的形式: let closure_name = |arg1: type1, arg2: type2| -> return_type { // closure body } 在闭包定义中,可以省略参数的类型和返回值类型,Rust 将通过第一次调用该闭包时...

我的 Chrome 上安装的插件一览及介绍

想必不管是谁,在网上冲浪这么多年,多多少少都有听说过 Chrome 浏览器,即使没有用过 Chrome,也至少用过基于 Chromium 内核的浏览器,例如:QQ 浏览器,360 浏览器,以及已经叛变的 Microsoft Edge。 很多人都知道 Chrome 很好用,但是,我想说的是:带插件的 Chrome 更好用。用 Chrome 不装插件,简直就是开空调不关窗。 下面介绍一下我自...

Markdown 一些奇技淫巧

列表内分段 举个例子,假如我们想要在列表中换行,最简单的办法就是双空格法: * 第一项第一行 <!-- 注意这里有两个空格 --> 第一项第二行 * 第二项第一行 <!-- 注意这里有两个空格 --> ``` 一段代码 ``` <!-- 注意这里有两个空格 --> 第二项第二行 效果: 第一项第一行 第一项第二行 第二项第一行 ...