本文基于插件hexo-bilibili-bangumi编写,并修改为适配redefine主题的样式,最终结果示例见我的追番列表 主要是闲来无事逛github的时候发现了hexo-bilibili-bangumi这么一个插件,可以爬取bili/bangumi的数据并渲染为一个页面展示你的追番列表,整好我前段时间开始有了bangumi记录追番的习惯,所以想着上...
最近在编写一个Qt项目,发现Qt在windows部署有一个很方便的工具windeployqt.exe,遂研究如何在cmake里调用这个工具,在install时执行,实现全自动化的发布构建。 代码如下: 1234567891011# 1. 找到qmake的执行路径(Qt5请更换为你实际的Qt版本)get_target_property(qmake_exec_filepath Qt5::qmak...
这一章就主要讲讲Cargo这个工具的一些用途,主要是以下几个部分,没有涉猎到的可以在官网查看cargo更全面的介绍: build时使用的release profile相关介绍 怎么将你写的包发布到creates.io上给别人用 使用工作空间组织项目 下载安装craetes.io的包 使用自定义命令来扩展cargo release profileRust内置了两套release profi...
闭包:能够捕获环境的匿名函数如这个小节的标题所示,闭包其实就是一个匿名函数,可以接收变量,也可以返回值,主要是用来实现一些代码复用和自定义的行为。 概述首先,闭包的基本定义方法如下 1234567fn main() { let a = 1; let b = 2; let c = |a, b|{a+b}; let d = |a, b| a-...
本章节我们将开始学习编写一个小项目——开发一个能够和文件系统交互并处理命令行输入、输出的工具 基本功能实现首先自然是新建一个项目,名为minigrep 1cargo new minigrep 实现这一个工具的首要任务自然是接收命令行的参数,例如我们要实现在一个文件里搜索字符串,就得在运行时接收两个参数,一个待搜索的字符串,一个搜索的文件名,例如 1cargo run string fi...
这一章讲的就是怎么在Rust编写单元测试代码,这一部分的思想不仅适用于Rust,在绝大多数语言都是有用武之地的 如何编写测试测试代码的构成构成通用测试代码通常包括三个部分 准备所需的数据或者前置状态 调用需要测试的代码 使用断言,判断运行结果是否和我们期望的一致 在Rust中,有专门用于编写测试代码的相关功能,包含test属性,测试宏,should_panic属性等等 在最简单的情况...
泛型泛型是一种具体类型或者其他属性的抽象替代,通常用来减少代码的重复,接下来将从泛型的几个实际应用场景开始介绍泛型 应用场景在函数定义中使用现在假设我们要写一个寻找数组最大值的功能,我要怎么实现既能从字符数组里查找最大值,又能从整数数组里查找最大值?定义两个函数分别查找的话难免重复性有点高,这时候就需要使用泛型。 123456789fn largest<T>(list: &...
最近写了个软件,需要写个接口文档,看到别人项目的文档有不少都是托管在 Read the Docs 上的,于是搜了一下,Read the Docs 是一个托管平台,而这个平台的文档是基于 Sphinx 构建的,所以就学了一下,以此记录。 安装Sphinx很简单,用pip安装即可,尽量使用官方的源,国内源听说多少有点问题 1pip install sphinx 构建Sphinx项目快速构建推荐...
前言 Rust 里的错误主要分为两种:1. 不可恢复错误:主要指的就是程序Bug之类的用户不可见的错误,例如尝试访问超过数组长度的下标;2. 可恢复错误,例如文件没找到等,可以提示用户再次查找。Rust 对这两种错误进行了区分,并针对不同的场景提供了许多的特性来处理 不可恢复错误与Panic!Panic!宏介...
动态数组定义1let a:Vec<i32> = Vec::new(); 定义非常简单,是Vec的格式,Vec 也就是 vector,动态数组类型的关键字,用两个尖括号括住动态数组所存放的数据类型 T,代码里就是存放 i32 类型的数据。再使用new方法分配一片空间。 上面是一个创建一个指定类型的空数组,因为是空数组,所以编译器没法推理出我们数组的类型,所以要显示定义类型,如果给...