rust 中的发散函数
在 rust 中,发散函数(diverging functions)是指那些永远不会返回的函数。它们使用 ! 作为返回类型,来表明这个函数不会返回到调用它的代码。这通常用于表示函数会引发 panic 或者进入无限循环,或者有可能调用操作系统的退出函数。 发散函数的返回类型 发散函数的返回类型是 ! , 表示永远不会返回,无论你的函数返回值是啥,使用 ! 作为返回类型都是合法的,因为实际...
在 rust 中,发散函数(diverging functions)是指那些永远不会返回的函数。它们使用 ! 作为返回类型,来表明这个函数不会返回到调用它的代码。这通常用于表示函数会引发 panic 或者进入无限循环,或者有可能调用操作系统的退出函数。 发散函数的返回类型 发散函数的返回类型是 ! , 表示永远不会返回,无论你的函数返回值是啥,使用 ! 作为返回类型都是合法的,因为实际...
之前在公司主要是使用 Mediamtx 来实现流媒体服务器,今天分享一个使用 Nodejs 实现的流媒体服务器—Node-media-server。 安装 nodejs sudo apt install nodejs 安装 npm 包管理器 sudo apt install npm 添加服务器代码 创建工程 mkdir mediaserver cd mediaser...
在 rust 中,Fn、FnMut 和 FnOnce 是三种闭包(closure)类型,它们定义了闭包如何捕获外部环境中的变量,通常情况下,编译器会自动推断闭包的类型,但是当使用闭包作为参数时,需要显示指定闭包的类型。 Fn:表示闭包可以通过引用来捕获外部变量(即不可变借用),并且可以多次调用。 FnMut:表示闭包可以通过可变引用来捕获外部变量(即可变借用),并且可以...
直接上干货。 步骤 1、 sudo vi /etc/apt/apt.conf.d/10periodic 后面部分全部改成 “0” APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Download-Upgradeable-Packages "0"; APT::Periodic::AutocleanInterval ...
在 rust 语言中,闭包是可以捕获周围作用域中变量的匿名函数。闭包的语法和其他语言的 lambda 表达式类似,它有能力捕获上下文中的变量,这使得它非常适合用作回调函数或临时的内联函数。 闭包通常使用一对垂直线 || 来定义,这些线内是闭包的参数,后面跟着闭包体。闭包可以捕获变量的方式有三种: 通过引用捕获(不可变借用),使用 Fn 特征。 ...
在嵌入式开发中经常使用到串口,这里演示一下如何快速地使用 rust 来编写串口的访问代码,我们使用 serialport crate 来实现, 一起来感受一下 rust 惊人的开发效率吧!! 环境搭建 把 RX 和 TX短接,接入电脑 创建工程 cargo new serial_demo 添加依赖 在 Cargo.toml 文件里指定 serialport 的版本 [depe...
todo
在 cmake 中, INTERFACE 关键字用于定义接口库(Interface Libraries),这是一种不直接编译成二进制文件,而是用来传递使用要求(如编译选项、定义、包含目录等)给其他目标(如可执行文件或库)的特殊目标。 例一 假设你有一个接口库,你想为链接到它的目标添加一些编译器定义: cmake add_library(my_interface_lib INTERFA...
在 cmake 中, IMPORTED 目标是指那些在项目外部预先构建好的库或可执行文件。通过将这些库或可执行文件作为导入的目标引入,可以在项目中使用它们,就像使用项目内构建的目标一样。这样做的好处是可以方便地重用已有的二进制文件,而无需从源代码重新构建它们,这对于依赖于第三方库的项目尤其有用。 举例 目录结构如下 myapp ├── other_lib │ ├── includ...
在 C 语言的世界里,裸指针是可以随意使用的,但是在 C++ 中,裸指针是不能随意使用的,因为它有可能导致内存泄漏。但是有时候确实需要绕不开裸指针,该怎么办?下面介绍一种使用 c++ 的方式来优雅的管理裸指针的方法。 示例 #include <memory> int main() { char *p = nullptr; std::shared_ptr&l...