Fork me on GitHub
摘要: 枚举在java里也算个老生长谈的内容了,每当遇到一组需要类举的数据时我们都会自然而然地使用枚举类型: public enum Color { RED, GREEN, BLUE, YELLOW; public static void main(String[] args) { Color red = 阅读全文
posted @ 2020-09-02 14:00 apocelipes 阅读(1218) 评论(0) 推荐(0) 编辑
摘要: 反射是一项相当强大的特性,不仅在各类框架中被广泛应用,即使是在日常开发中我们也隔三差五得要和它打交道。然而在JDK9中JDK对反射加上了一些限制,需要注意。 考虑有如下的代码: import java.lang.reflect.Field; import java.util.ArrayList; p 阅读全文
posted @ 2020-08-25 22:11 apocelipes 阅读(7128) 评论(0) 推荐(2) 编辑
摘要: Linux下提供了丰富的api以供开发者们处理和时间相关的问题。然而这些接口看似各自为政实则有有着千丝万缕的联系,在学习和时间中引发了各种各样的混乱。因此时间处理成为了许多Linux开发者的梦魇,遇到时间处理往往避之不及。不过只要你稍微花费一点点精力,学会在Linux上优雅的处理时间和日期也并不是什 阅读全文
posted @ 2020-03-27 11:02 apocelipes 阅读(1848) 评论(0) 推荐(0) 编辑
摘要: 本文索引 语言变化 数字字面量 越界索引报错的完善 工具链改进 GOPROXY GOSUMDB GOPRIVATE 标准库的新功能 判断变量是否为0值 错误处理的革新 Unwrap Is As golang1.13发布已经有一个月了,本文将会列举其中几个较为重要的特性。我们将会从语言变化、库变化以及 阅读全文
posted @ 2019-09-27 22:39 apocelipes 阅读(6275) 评论(0) 推荐(3) 编辑
摘要: 在 "上一篇文章" 中我们介绍了使用vs2019作为远程Linux系统的开发环境,但我们是创建的传统的sln项目,而对于Linux开发者来说以autotools或是cmake进行项目结构的组织更为简单直观,也符合在Linux环境上的习惯。 autotools是较为古老的也是使用最为广泛的构建系统,你 阅读全文
posted @ 2019-08-29 20:23 apocelipes 阅读(16894) 评论(9) 推荐(9) 编辑
摘要: 最近在重温《c++程序设计新思维》这本经典著作,感慨颇多。由于成书较早,书中很多元编程的例子使用c++98实现的。而如今c++20即将带着concept,Ranges等新特性一同到来,不得不说光阴荏苒。在c++11之后,得益于新标准很多元编程的复杂技巧能被简化了,STL也提供了诸如 TypeList 阅读全文
posted @ 2019-08-02 17:07 apocelipes 阅读(3589) 评论(0) 推荐(2) 编辑
摘要: 这几天我翻了翻golang的提交记录,发现了一条很有意思的提交: "bc593ea" ,这个提交看似简单,但是引人深思。 commit讲了什么 commit的标题是“sync: document implementation of Once.Do”,显然是对文档做些补充,然而奇怪的是为什么要对某个功 阅读全文
posted @ 2019-07-06 19:40 apocelipes 阅读(1120) 评论(0) 推荐(1) 编辑
摘要: 在golang中我们可以轻松地通过 来判断两个数组(array)是否相等,但遗憾的是slice并没有相关的运算符,当需要判断两个slice是否相等时我们只能另寻捷径了。 slice相等的定义 我们选择最常见的需求,也就是当两个slice的类型和长度相同,且相等下标的值也是相等的,比如: 上述代码中 阅读全文
posted @ 2019-07-01 21:03 apocelipes 阅读(21731) 评论(0) 推荐(2) 编辑
摘要: 有时候除了测量算法的具体性能指数,我们也会希望测试出算法的时间复杂度,以便我们对待测试的算法的性能有一个更加直观的了解。 测量时间复杂度 google benchmark已经为我们提供了类似的功能,而且使用相当简单。 具体的解释在后面,我们先来看几个例子,我们人为制造几个时间复杂度分别为 , , 的 阅读全文
posted @ 2019-06-30 01:45 apocelipes 阅读(4422) 评论(0) 推荐(0) 编辑
摘要: 上一篇中我们初步体验了google benchmark的使用,在本文中我们将更进一步深入了解google benchmark的常用方法。 本文索引 向测试用例传递参数 简化多个类似测试用例的生成 使用参数生成器 向测试用例传递参数 之前我们的测试用例都只接受一个benchmark::State&类型 阅读全文
posted @ 2019-06-22 02:34 apocelipes 阅读(5313) 评论(1) 推荐(6) 编辑