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