在众多介绍软件架构的书籍中,特别是 OOP 语言为基准的话,你一定听说过一句话“组合优于继承” 【Favor composition over inheritance】
为什么这么说? 我们来看一个例子。继承非常好理解,我们需要创建一只鸡,一只鸭,我们很容易抽象出“鸟类”这个父类。如下:
Continue reading “聊聊Kotlin中的继承和组合”做一个有趣的人
在众多介绍软件架构的书籍中,特别是 OOP 语言为基准的话,你一定听说过一句话“组合优于继承” 【Favor composition over inheritance】
为什么这么说? 我们来看一个例子。继承非常好理解,我们需要创建一只鸡,一只鸭,我们很容易抽象出“鸟类”这个父类。如下:
Continue reading “聊聊Kotlin中的继承和组合”我们看一些源码发现,一些源码,在范型前面添加了一些关键字 in 或者 out,这又是什么呢?比如 kotlin内置的 Comparable.kt
再比如,Collections.MutableIterable 接口
为什么会有一些加in,有一些加out 呢?了解这个之前我们来看下
泛型(Generics)是一种允许类、接口和方法操作任意类型(类型参数)的特性。泛型提供了一种类型安全的方式来处理对象集合和其他数据结构,而无需在编译时指定具体的类型。
举一个栗子:
Continue reading “Kotlin 范型中的in 和out 是什么?”都2024年了,苹果系统内部还没有解决.
当右侧icon较多时,默认分辨率的屏幕很容易当icon超过10个时多余的icon 挤到 notch区域,然后怎么样都无法点到了。
Continue reading “快速解决Mac OS 被顶部图标摄像头挡住的问题。Quickly fix the Camera area covered the menu icon on MacOS”如今各种语法糖越来越方便,以前很多难以直观理解的代码,通过语法糖包装下,变得越来越好用,典型的有 lambda表达式,协程, flow, rx 等等,用起来是不亦乐乎。
很对第三方sdk也逐渐从传统的callbck形式逐渐提供flow形式的接口,让适用方能够比较自然的接入。
Continue reading “Python将回调函数转为可迭代对象|convert callback into generator in Python”要想获取外网IP,可以直接使用curl获取。
curl ipecho.net/plain