摘要:解构声明: 在上一次https://www.cnblogs.com/webor2006/p/11519460.html对Kotlin的解构声明进行了学习, 这里继续还是学习解构声明在集合中的应用: 其中to是一个中缀表达式: 接下来遍历该map有多少方式,这里用解构声明的方式,如下: 可见是多么的简
阅读全文
摘要:带接收者的函数字面值: Kotlin提供了这样一种功能:可以通过指定的接收者对象来调用一个函数字面值。在函数字面值内部,你可以调用接收者对象的方法而无需使用任何额外的修饰符,这一点非常类似于扩展函数,下面来看一下代码: 好怪异的语法,其中看到通过“.”的方式来声明了一个Int的函数字面值,其中函数的
阅读全文
摘要:Lambda表达式实例演练: 继续先来编写一些Lambda表达式相关的代码: 接下来想从上面的字符串数组中找到带有"h"的字符串并打印出来: 如果学习了Java8的Lambda表达式,上面这程序真的是so easy,继续更换条件,找到字符串长度大于4的字会串并打印,依葫芦画瓢: 接下来再来新需求:找
阅读全文
摘要:继续学习Kotlin的函数式编程,先定义一个高阶函数: 其实上面这种调用方式在Kotlin用得不多,反而是将Lambda表达式放到方法体中使用得较频繁,如下: 接下来定义一个扩展方法,用来对字符串进行一定条件的过滤,该条件由用户调用时动态提供,所以肯定就得用Lambda表达式啦,所以下面来看一下:
阅读全文
摘要:函数可变参数: 在上一次https://www.cnblogs.com/webor2006/p/11518425.html中学到了可变参考,关于可变参数有如下规则说明: “一个方法中,只允许一个参数为vararg,通常作为最后一个参数,如果vararg不是最后一个参数,那么其后的参数就需要通过具名参
阅读全文
摘要:位置参数与具名参数: 继续接着上一次https://www.cnblogs.com/webor2006/p/11498842.html的方法参数学习,再定义一个函数来说明具名参数的问题: 调用一下,先全部都指定参数肯定就会将默认值给替换掉了: 上面的这种方式其实是叫位置参数,接下来用具名的方式来指定
阅读全文
摘要:Kotlin函数: 关于Kotlin函数在之前也一直在用,用fun来声明,回忆下: 下面再来整体对Kotlin的函数进行一个学习。 默认参数(default arguments): 先来定义一个函数: 相比java不一样的就是可以给参数增加默认参数,如下: 接一来调用一下该函数: 接下来还可以这样调
阅读全文
摘要:属性委托总结回顾: 在前三次已经将Kotlin委托相关的知识点进行了完整的学习了,具体博文如下: https://www.cnblogs.com/webor2006/p/11369019.html https://www.cnblogs.com/webor2006/p/11369333.html h
阅读全文
摘要:在上一次https://www.cnblogs.com/webor2006/p/11369333.html中学习了委托属性,然后它在实际中有四种使用情况: 接下来则学习一下另外两种属性委托的使用。 可观测属性委托(Observable): 先来看一下我们要使用的可观测属性的委托方法的定义: 所以咱们
阅读全文
摘要:在上一次https://www.cnblogs.com/webor2006/p/11369019.html中学习了类委托,这次来学习一下属性的委托(delegated property),我们知道定义一个类的属性是需要给它一个初始值的,如果不给会报错,如下: 当然啦,可以加一个延迟属性来避免: 当然
阅读全文
摘要:枚举: 基本上跟Java的差不多,这里就过一遍既可,如下: 还可以接收参数,如下: 枚举还可以定义方法,如下: 看下错误提示: 所以可以这样: 然后咱们再冒号之前定义对象,如下: 下面来使用一下: 当然还可以用Kotlin提供的语法糖来更加精简的进行遍历,如下: 对象声明: 我们之前学过对象表达式,
阅读全文
摘要:Kotlin对象表达式要点揭密: 在上一次https://www.cnblogs.com/webor2006/p/11352421.html中学习了Kotlin的对象表达式,它主要是解决Java中匿名内部类的问题,这次继续对它进行学习,在上一次的示例中,我们定义了一个不继承任何类或实现任何接口的对象
阅读全文
摘要:嵌套类与内部类巩固: 在上一次https://www.cnblogs.com/webor2006/p/11333101.html学到了Kotlin的嵌套类与内部类,回顾一下: 而对于嵌套类: 归根结底就是因为静态的类只能去访问静态的成员,所以,一个嵌套类其实是可以访问另一个同层次的嵌套类的,因为它本
阅读全文
摘要:Kotlin的学习因为工作的事又给担误了,不能半途而废,继续!! 嵌套类【Nested Class】: 直接看代码: 接下来咱们来访问NestedClass中的nestedMethod: 很显然需要实例化,如下: 以上就是一个很典型嵌套类的实例,貌似跟Java的内部类好像的样子,不过还是有区别的,下
阅读全文
摘要:星投影(star projection): 继续来学习Kotlin泛型相关的东东,星投影(star projection),这是个啥东东呢?下面先来说一下概念: 1、对于Star<out T>协变:如果T的上界是TUpper,那么Star<*>就相当于Star<out T>,这表示当T的类型未知时,
阅读全文
摘要:在上一次https://www.cnblogs.com/webor2006/p/11294849.html中对于Java的协变和Kotlin的协变提到了它们的区别,回忆一下: 其实在Kotlin中也有使用处协变(use-site variance),也叫(type projection类型投影),我
阅读全文
摘要:继续还是探究协变与逆变,在正式开始之前,先来对Kotlin和Java的协变与逆变进行一个对比: 1、Kotlin是声明处协变;而在Java中是在使用处协变: 如何理解,我们先来回顾一下在Java使用协变的写法: 很显然是在我们使用的时候进行协变的,而在Kotlin中: 2、Kotlin中的out关键
阅读全文
摘要:在上一次https://www.cnblogs.com/webor2006/p/11279692.html中对于泛型中的协变与逆变进行了初步了解,由于这个概念是脱离开语言而且又非常之重要的,所以接下来继续对这个概念进行进一步巩固,达到一种通透领悟的境界。 这里还是从Java的角度再来看一下关于泛型协
阅读全文
摘要:在上一次https://www.cnblogs.com/webor2006/p/11234941.html中学习了数据类[data class]相关的知识,这次会学习关于泛型相关的东东,其中有关于泛型我经常不太理解的关于<? extends T>和<? super T>的使用方式,所以好好学习,天天
阅读全文
摘要:今天来学习一下全新关于Kotlin的概念 数据类【data class】,也是非常有用的东东,下面先来对其进行理论化的了解: 数据类其实跟java的实体类(model)很类似,像Java定义一个Person类,里面有各种属性然后再生成它的get和set方法,当然可以借助于IDE来生成,但是其实jav
阅读全文