![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kotlin
珍心
诚心学习,非诚勿扰
展开
-
【Kotlin】有趣的运算符重载
学而不思则罔,思而不学则殆【Kotlin】有趣的运算符重载加法运算符传统加法运算符重载运算符语法运算符与实际调用函数对比语法糖测试minustimesdivrem运算符重载是Kotlin提供的一个比较有趣的语法糖。我们知道。Java中 有许多语言内置的运算符关键字,如= - * / % ++ --.而Kotlin中可以将所有的运算符甚至其他的关键字进行重载,扩展这些运算符和关键字的用法每个人从小就学了四则运算,在编程语言中,两个数字相加表示求和,两个字符串相加,表示对这两个字符进行拼接。但是在Kot原创 2020-11-04 08:50:07 · 174 阅读 · 0 评论 -
【Kotlin】Kotlin学习十二-高阶函数和 Lambda 表达式
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习十二-高阶函数和 Lambda 表达式高阶函数函数类型Kotlin 函数都是头等的,这意味着它们可以存储在变量与数据结构中、作为参数传递给其他高阶函数以及从其他高阶函数返回。可以像操作任何其他非函数值一样操作函数。为促成这点,作为一门静态类型编程语言的 Kotlin 使用一系列函数类型来表示函数并提供一组特定的语言结构,例如 lambda 表达式。高阶函数高阶函数是将函数用作参数或返回值的函数。一个不错的示例是集合的函数式风格的 fol原创 2020-09-19 09:43:07 · 276 阅读 · 0 评论 -
【Kotlin】Kotlin学习十一-函数
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习十一-函数函数函数申明函数用法参数默认参数具名参数返回 Unit 的函数单表达式函数显式返回类型可变数量的参数(Varargs)中缀表示法函数作用域局部函数成员函数泛型函数函数函数申明Kotlin 中的函数使用 fun 关键字声明:fun double(x: Int): Int { return 2 * x}函数用法调用函数使用传统的方法:val result = double(2)调用成员函数使用点表示法:Str原创 2020-09-18 21:53:34 · 227 阅读 · 0 评论 -
【Kotlin】Kotlin学习十-对象表达式与对象声明
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习十-对象表达式与对象声明对象表达式与对象声明对象表达式对象声明对象声明和伴生对象对象表达式和对象声明之间的语义差异对象表达式与对象声明有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。 Kotlin 用对象表达式和对象声明处理这种情况。对象表达式要创建一个继承自某个(或某些)类型的匿名类的对象,我们会这么写:window.addMouseListener(object : MouseAdapter()原创 2020-09-13 19:59:07 · 163 阅读 · 0 评论 -
【Kotlin】Kotlin学习九-嵌套类与内部类和枚举类
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习九-嵌套类与内部类嵌套类与内部类嵌套类内部类匿名内部类嵌套类与内部类嵌套类类可以嵌套在其他类中:class Outer { private val bar: Int = 1 class Nested { fun foo() = 2 }}val demo = Outer.Nested().foo() // == 2对于没有inner的嵌套类,不持有外部类的引用,相当于java的静态内部类(原创 2020-09-13 19:12:35 · 148 阅读 · 0 评论 -
【Kotlin】Kotlin学习八-数据类和密封类
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习八-数据类数据类在类体中声明的属性复制数据类与解构声明标准数据类测试Pair(二元)测试Triple (三元)数据类我们经常创建一些只保存数据的类。 在这些类中,一些标准函数往往是从数据机械推导而来的。在 Kotlin 中,这叫做 数据类 并标记为 data :data class User(val name: String, var age: Int)data class Student(val user: User, val stud原创 2020-09-13 17:36:22 · 158 阅读 · 0 评论 -
【Kotlin】Kotlin学习七-扩展
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习七-扩展扩展扩展函数扩展是静态解析的可空接收者扩展属性伴生对象的扩展扩展的作用域扩展声明为成员关于可见性的说明扩展Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。 这通过叫做 扩展 的特殊声明完成。 例如,你可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。 这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。 这种机制称为 扩展函数 。此外,也有 扩展属性 , 允许你为一个已经存原创 2020-09-13 15:36:22 · 197 阅读 · 0 评论 -
【Kotlin】Kotlin学习六-可见性修饰符
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习六-可见性修饰符可见性修饰符可见性修饰符对比包类和接口构造函数局部声明模块可见性修饰符类、对象、接口、构造函数、方法、属性和它们的 setter 都可以有 可见性修饰符。 (getter总是与属性有着相同的可见性。) 在 Kotlin 中有这四个可见性修饰符: private 、protected 、 internal 和 public 。 如果没有显式指定修饰符的话,默认可见性是public可见性修饰符对比修饰符Kotlin原创 2020-09-13 11:34:29 · 235 阅读 · 0 评论 -
【Kotlin】Kotlin学习五-接口
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习五-接口接口接口实现接口中的属性接口继承解决覆盖冲突接口Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保存状态。它可以有属性但必须声明为抽象或提供访问器实现。使用关键字 interface 来定义接口:interface MyInterface { fun bar() fun foo() { // 可选的方法体 println("MyInterface原创 2020-09-13 10:57:10 · 92 阅读 · 0 评论 -
【Kotlin】Kotlin学习四-属性与字段
学而不思则罔,思而不学则殆【Kotlin】Kotlin学习四-属性与字段原创 2020-09-13 10:17:42 · 272 阅读 · 0 评论 -
【Kotlin】Kotlin学习三-类与对象
【Kotlin】Kotlin学习三-类与对象类构造函数主构造函数次构造函数继承学而不思则罔,思而不学则殆类Kotlin 中使用关键字 class 声明类类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构成。类头与类体都是可选的; 如果一个类没有类体,可以省略花括号。class Person{ /*……*/ }class Empty构造函数在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。主构造函数是类头的一部分:它跟在类名(与可选的类型参数原创 2020-09-12 08:28:29 · 275 阅读 · 0 评论 -
【Kotlin】Kotlin学习二-控制流
【Kotlin】Kotlin学习二-控制流If 表达式when表达式for表达式while表达式学而不思则罔,思而不学则殆If 表达式在 Kotlin 中, if 是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的 if 就能胜任这个角色传统用法 val a = 10 val b = 11 var max = a if (a < b) max = b println("max = $max")With原创 2020-09-07 07:54:36 · 135 阅读 · 0 评论 -
【Kotlin】Kotlin学习一-基本类型
【Kotlin】基本类型数字整数Byte Short Int Long浮点数字面常量表达方式第一组实验(Int?1000 和Int? 100)第二组实验(Int 1000 和Int 100)第三组实验(缓存)同一性和相等性显示转换位运算字符布尔数组原生类型数组字符串学而不思则罔,思而不学则殆数字整数Byte Short Int Long类型大小最大值最小值Byte827-1 (127)-27(-128)Short16215-1(32767)-215(-3原创 2020-09-06 11:53:28 · 173 阅读 · 0 评论 -
【Kotlin】高阶函数用法二 - 延时初始化+密封类
【Kotlin】高阶函数用法(二)延时初始化密封类学而不思则罔,思而不学则殆延时初始化告诉编译器,该对象会在后面对它进行初始化关键字:lateinit必须结合var使用,不能是val使用之前一定要确定已经初始化,否则会抛出异常class Group() { private lateinit var student: Student private lateinit var iCar: ICar constructor(brand: String, name: S原创 2020-07-16 07:54:48 · 234 阅读 · 0 评论 -
【Kotlin】高阶函数用法一(with,run,apply)
【Kotlin】高阶函数用法(一)总结withrunapply简单应用学而不思则罔,思而不学则殆总结函数调用方法提供环境参数个数返回值with直接调用提供对象上下文两个参数(对象+Lambda)最后一行代码式作为返回值run对象调用提供对象上下文一个参数(Lambda)最后一行代码式作为返回值apply对象调用提供对象上下文一个参数(Lambda)无返回值withwith接收两个参数:第一个参数可以是任意类型第二个参数是个l原创 2020-07-08 22:48:22 · 407 阅读 · 0 评论 -
【Kotlin】Kotlin学习总结
Kotlin学习总结督促自己学习总结,特用文章的形式记录下来,共同进步原创 2020-07-05 12:39:17 · 328 阅读 · 0 评论