可见性[Visibility]: 在Java中的可见性有public.protected.private.default四种,而在Kotlin中也有四种:public.protected.private.internal,下面来细说一下: 作用在顶层类及函数上: 像这样直接定义在包下面的则称之为顶层类及函数,如下: ①.我们知道在Java中如果啥都不写就是包级别的default可见性,但是在Kotlin中不是这样的,默认是public的,当然是哪都能使用喽. ②.如果我们将其声明为private…
vivo 互联网客户端团队- Ruan Wen 本文是Kotlin协程解析系列文章的开篇,主要介绍Kotlin协程的创建.协程调度与协程挂起相关的内容 一.协程引入 Kotlin 中引入 Coroutine(协程) 的概念,可以帮助编写异步代码. 在使用和分析协程前,首先要了解一下: 协程是什么? 为什么需要协程? 协程最为人称道的就是可以用看起来同步的方式写出异步的代码,极大提高了代码的可读性.在实际开发中最常见的异步操作莫过于网络请求.通常我们需要通过各种回调的方式去处理网络请求,很容易就陷…
Swift中的分类 1.创建一个空的swift文件 2.关键字extension,格式: extension 要扩展的类名 {} extension UIButton { } Swift中扩展init方法的注意事项 如果构造方法前面没有convenience单词,代表是一个初始化构造方法(指定构造方法). 如果构造方法前面有convenience单词,代表是一个便利构造方法(方便构造方法). 指定构造方法与便利构造方法的区别: 指定构造方法中必须对所有的属性进行初始化. 便利构造方法不用对所有属…
OC分类(类目/类别) 和 类扩展 - 全解析   具体见: oschina -> MyDemo -> 011.FoundationLog-OC分类剖析 http://blog.csdn.net/u013378438/article/details/44491703     关于OC分类,非常重要的知识点:   >>分类能够对实例方法,类方法进行扩展,但不能够添加类的属性及实例变量. >>分类能够像类本身一样,调用self来访问类的方法,属性. 但对于通过新建.h与.m…
redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐 1.Redis 官方网站下载: http://redis.io/download第三方下载redis的windows应用程序,支持32位和64位,根据实际情况下载下载地址: https://github.com/dmajkic/redis/downloads2.将相应的程序copy到你所需要的目录中,在这里我使用的64位,放到E:\redis目录3.启动redis服务…
在上一次https://www.cnblogs.com/webor2006/p/11219358.html学习了Kotlin的扩展,继续这个话题继续拓展,首先提出这么一个问题:假如我们扩展的方法跟类中已有的方法一模一样,那最终调用的哪个方法呢?虽说这个问题有点白痴,但是为了学习得更加透彻有必要对这些细节也了解透,下面来试验一下: 调用看一下: 另外扩展方法也可以对已有方法进行重载,如下: 可空类型的扩展: 啥意思?我们知道Any是Kotlin所有类的顶层父类,所以我们可以对这个顶层类进行扩展,如…
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式. 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响. 扩展函数 扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式: fun receiverType.functionName(params){ body } receiverType:表示函数的接收者,也就是函数扩展的对象 functionName:扩展函数的名称 params:扩展函数的参数,可以为NULL 以下实例扩展…
文章中没有奇淫技巧,都是一些在实际开发中常用,但很容易被我们忽略的一些常见问题,源于平时的总结,这篇文章主要对这些常见问题进行分析. 这篇文章主要分析一些常见问题的解决方案,如果使用不当会对 性能 和 内存 造成的那些影响以及如何规避这些问题,文章中涉及的案例来自 Kotlin 官方.Stackoverflow.Medium 等等网站. 通过这篇文章你将学习到以下内容: 使用 toLowerCase 和 toUpperCase 等等方法会造成那些影响? 如何优雅的处理空字符串? 为什么解构声明和…
在使用面向对象的语言进行项目开发的过程中,较多的会使用到“继承”的特性,但是并非所有的场景都适合使用“继承”特性,在设计模式的一些基本原则中也有较多的提到. 继承的有关特性的使用所带来的问题:对象的继承关系实在编译时就定义好了,所以无法在运行时改变从父类继承的实现.子类的实现与它父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化.当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写它或被其他更适合的类替换,这种依赖关系限制了灵活性并最终限制了复用性.替…
解析和扩展表格 配置表示例 配置表模块在编译时,把Excel转化成TSV,并根据Excel的头部信息,生成对应的代码: 比如源码库中的Test.xlsx Excel文件,两个列头,Id和Value,其下的列头信息标注其分别是string和I18N. 这是对这两个列的类型声明. 图:列Id注明是string类型,列Value注明是I18N类型 生成配置表代码 在生成代码的时候,会把其类型作为代码的一部分,写入到代码中: /// <summary> /// Auto Generate for Ta…