近月少女的礼仪 2.1 感想
最近这部 FD 发售之后就忍不住玩了一下;
会结合本篇《近月少女的礼仪 2》(月に寄りそう乙女の作法2) 来谈一谈感想;
内有剧透,慎点
之前提到枚举实现是单例的最佳实现,这毋庸置疑;
不过,对比枚举和静态内部类,好像它们的区别就在于防止了反射攻击;
那么,都『攻击』了,为啥偏偏没事去改你的单例呢?直接获取更有意思的信息不是更好吗?
Rxjava,是一个响应式的(Reactive),基于观察者模式的异步框架。
除此之外,还有其他的 RxScala 和 RxSwift 等。
说起来现在已经 2017 年了,应该没有什么 Java 工程师不知道什么是 Rxjava 了吧
在 Kotlin 的 Standard.kt 中提供了一些特殊的高阶函数;
它们被称作 Scoping 函数,此类函数通过使用一个函数 block
,将你需要对某对象进行的一系列操作限制在 lambda 作用域内;
这样,对于该对象操作的代码就不会泄露到外层作用域,使得代码更为干净整洁。
例如:
DbConnection.getConnection().let { connection ->
}
// connection is no longer visible here
可以看到,对于 connection
的操作就仅局限于 let
的 lambda 区域,而在 lambda 区域外是不可见的;
这就可以保证对 connection
的操作,不会影响到接下来的作用域。
Scala 作为函数式语言,提供了很多用于高阶函数来解决一类范式问题;
但是,使用过多的高阶函数就会让代码的可读性变差;
所以,对此 Scala 提供了一种类 Python 的简便的语法糖,用来解决代码的可读性问题。
高阶函数是函数式编程的一个很大的特性;
同时,其中集合类的高阶函数在日常的开发和使用中,占了一个很重要的位置;
但是,这些函数有可能会在刚接触的时候搞不懂它们的具体作用;
那么今天就以 List
来说一说常用的高阶函数具体的作用。
最近因为和舍友出去看电影,终于第一次体验了一下著名的小黄车 ofo;
ofo 的确是很方便,同时也解决了所谓「最后一公里」的这个需求痛点;
但是,我不得不说,ofo 的运营团队还很年轻,一些很基本的流程问题都没搞清楚就胡乱上线功能。
本文源码:
https://github.com/wafer-li/scala-coursera/tree/master/funsets
该作业是实现一个函数集合的相关内容。
何为函数集合?
一般来说,编程语言中的集合(Collection)都是有限集合;
但是,在数学上,还有很多的集合是无限集合,比如说 负数集;
我们有没有一种办法去表示这个集合呢?