11 2021 档案

摘要:Rust中的Result枚举Result枚举在Rust中是使用频率极高的一个类型,常用于函数的返回值定义,其源码如下: #[derive(Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)] #[must_use = "this `Result` may be an `Err` 阅读全文
posted @ 2021-11-28 15:48 菩提树下的杨过 阅读(937) 评论(0) 推荐(0) 编辑
摘要:Rust中的模式匹配一、let模式匹配 在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句。但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量。如果觉得有些牵强,可以再来一个示例: let (a,b)=(1,3); println!("{},{}",a,b); 上面的示例,表示(1,3)这个 阅读全文
posted @ 2021-11-28 14:20 菩提树下的杨过 阅读(521) 评论(0) 推荐(0) 编辑
摘要:Rust中的匿名函数与闭包一、匿名函数 语法:“|参数名| 语句” 参考下面的这个示例: fn add(a: i32, b: i32) -> i32 { a + b } fn main() { let x = add(1, 2); println!("{}+{}={}", 1, 2, x); //匿名函数 let add = 阅读全文
posted @ 2021-11-21 23:04 菩提树下的杨过 阅读(1217) 评论(0) 推荐(0) 编辑
摘要:Rust中的workspacejava项目中用maven管理代码时,如果遇到大型工程,一般会拆分成不同的模块,比如spring-mvc中,通常会按model, view, controller建3个模块,然后根据一定的依赖关系进行引用。这个概念在Rust中是通用的,只不过maven换成了cargo,而模块变成了crate,看下面 阅读全文
posted @ 2021-11-21 21:56 菩提树下的杨过 阅读(536) 评论(1) 推荐(1) 编辑
摘要:算法练习(19)-单源最短路径dijkstra算法如上图,先初始化1个图,每条边上的红色数字为路径权重:(Node,Edge的定义参见算法练习(17)-图的广度优先遍历/深度优先遍历) Graph init() { List<Node> nodes = new ArrayList<>(); List<Edge> edges = new ArrayL 阅读全文
posted @ 2021-11-14 19:24 菩提树下的杨过 阅读(259) 评论(0) 推荐(0) 编辑
摘要:Rust中struct的function与method一个示例就能看明白,关键处皆有注释,大致要点:impl 一个struct时,1.如果方法参数为&self,则为方法 ,可以用"对象实例.方法"来调用2.如果方法参数不是&self,则为函数,只能用"struct名::函数名"来调用 //类似java里的pojo类 struct Pet{ name:S 阅读全文
posted @ 2021-11-09 20:54 菩提树下的杨过 阅读(210) 评论(0) 推荐(0) 编辑
摘要:算法练习(18)-图的拓扑排序如上图,假设有一个大型代码工程,里面有5个模块: 模块1依赖模块2 模块2依赖模块3和模块5 模块3依赖模块4和模块5 那么,项目在编译时,应该按怎样的的顺序编译? 这就是所谓的拓扑排序问题 就这个示例而言,显然正确的编译顺序是:5->4->3->2->1 或 4->5->3->2->1 (注:4与 阅读全文
posted @ 2021-11-07 19:07 菩提树下的杨过 阅读(274) 评论(0) 推荐(0) 编辑
摘要:算法练习(17)-图的广度优先遍历/深度优先遍历一、图的数据结构及表示法 如上图,由一堆"点"与一堆"边"构成的数据结构 ,就称为图,其中边上可以有方向(称为有向图),也可以无方向(称为无向图)。边上还可以有所谓的权重值。 算法书上,图的表示方法一般有“邻接矩阵”等,这里我们用左程云介绍的一种相对更容易理解的表示法: 图: import java 阅读全文
posted @ 2021-11-07 16:50 菩提树下的杨过 阅读(1577) 评论(0) 推荐(0) 编辑
摘要:Rust中的代码组织:package/crate/mod刚接触Rust遇到一堆新概念,特别是package, crate, mod 这些,特别迷糊,记录一下 一、pakcage与crate 当我们用cargo 创建一个新项目时,默认就创建了一个package,参考下面的截图: 这样就生成了一个名为demo_1的package,另外也创建1个所谓的bina 阅读全文
posted @ 2021-11-06 16:41 菩提树下的杨过 阅读(1902) 评论(0) 推荐(1) 编辑
摘要:算法练习(16)-水平翻转一颗二叉树思路:依旧还是层次遍历, 按层入队, 然后出队时, 交换左右节点 阅读全文
posted @ 2021-11-03 12:07 菩提树下的杨过 阅读(102) 评论(0) 推荐(0) 编辑
摘要:算法练习(15)-设计1个二叉树的序列化与反序列化实现?思路: 二叉树的各种顺序中,随便挑1种,遍历每个节点, 拼装出1个字符串即可实现序列化。要注意的是, 空节点也需要, 可以找一个特殊符号比如#表示。 反序列化则是相反的过程,解析该字符串即可。 这里用层序遍历来实现一把: 序列化代码: public static String serial(Tree 阅读全文
posted @ 2021-11-02 23:23 菩提树下的杨过 阅读(80) 评论(0) 推荐(0) 编辑