
Kotlin
文章平均质量分 66
george_zyf
Go spurs Go!
展开
-
Kotlin 实战笔记:第一章 Kotlin:定义和目的
第一章 Kotlin:定义和目的一、Kotlin 的主要特征1,静态类型Kotlin 和 Java 一样是一种静态类型的编程语言。静态语言:所有表达式的类型在编译器已经确定了,而编译器就能验证对象是否包含了你想访问的方法或者字段。动态语言:可以定义存储任何数据类型的变量,在运行时才解析方法和字段引用。如下 Kotlin 代码:val x = 1;既然是...原创 2018-08-08 16:05:30 · 406 阅读 · 0 评论 -
kotlin的高级特性:9、Kotlin中的协程
一、协程1.Kotlin 中的协程是什么?简单理解:一般程序会有一个主进程,主进程中可能含有多个线程。而协程,是线程中的,也就是说一个线程中可能包含多个协程,协程与协程之间是可以嵌套的。2.有什么作用?当线程要执行可能会阻塞的任务时,一般情况下会开启一个子线程来完成,如果阻塞任务过多,就需要开启多个子线程(线程池),协程可以帮助我们完成的是,将可能会阻塞的任务放在线程的协程中来完成,多个...原创 2018-09-19 10:32:34 · 11100 阅读 · 0 评论 -
Kotlin的高级特性:7、不可变的变量并不是常量
语法特性背后的知识变量、常量与只读 var:变量val:不可变的变量,不是一个常量空安全是如何实现的 对比 java 语言是如何实现 空检查的内联的特殊情况Kotlin 的真泛型与实现方法需要掌握的命令:javap [option] *.class jdk 提供的反编译 class 文件的命令,可以很好的用来分析 Kotlin 的编译过程 子命令 输出信息...原创 2018-09-13 17:23:38 · 1027 阅读 · 0 评论 -
Kotlin高级特性:4、作用域函数与常用操作符
一、Kotlin的作用域函数run {…}with(T){…}let{…}apply{…}also{…}作用域函数是Kotlin内置的一系列可以对数据做一些变换的函数,与集合的操作符很相似,但集合的操作符只能作用域集合对象,而作用域函数可以操作任何对象。二、代码实现package zyf.kotlinfun main(args: Array<Strin...原创 2018-09-07 15:09:44 · 1515 阅读 · 0 评论 -
Kotlin高级特性:5、运算符的重载与中缀表达式
运算符的重载预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义的类型,也需要有类似的运算操作。 运算符重载,是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时,产生不同的行为,得出不同的结果。 运算符重载的实质是函数重载。在实现过程中,首先把指定的运算表达式转换为对运算符函数的调用,运算对象转换为运算符函数的实参,然后根据实参的类型来确定要调用的函数,这...原创 2018-09-10 11:22:17 · 515 阅读 · 0 评论 -
Kotlin高级特性:3、集合操作符
Kotlin 集合操作符基本上 RxJava 中支持的操作符,在 Kotlin 中都可以找到。代码示例fun main(args: Array<String>) { val a:Array<String> = arrayOf("4","d","e","q","s","g","5",&qu原创 2018-09-05 16:57:24 · 441 阅读 · 0 评论 -
Kotlin高级特性:2、循环语法
Kotlin 的循环在 Kotlin 中是不支持如下语句的var count:Intfor(count=0;count&lt;10;count++){ //此类写法,编译错误}Kotlin 的循环语法in 关键字for (i in 1..10 ) { //使用..表示闭区间区间,迭代i的值 println(i)}for (i in 1 ...原创 2018-09-05 15:44:58 · 1601 阅读 · 0 评论 -
Kotlin高级特性:1、解构
Kotlin高级特性:解构解构指的是,在赋值过程中,直接将一个对象的多个属性,赋值到多个变量上代码示例//创建一个用于演示的类class Cat(var name:String,var gender:String){ //使用operator关键字定义了两个函数 //需要注意的是,函数的名称一定是 component+数字() //这时,如果调用了com...原创 2018-09-05 11:45:09 · 1823 阅读 · 0 评论 -
Kotlin的高级特性:6、反引号,比较对象,类型连接
Kotlin 的反引号反引号:键盘左上角与波浪线在一起的符号 * 在 Kotlin 中,可以用反引号解决关键字冲突问题 * 可以强行让一个不合法的字符变为合法的 * 一般情况下无法使用,除非,某个方法不想让java调用,那么可以使用反引号的方式定义该方法名,因为java中不支持反引号作为方法名。fun main(args: Array<String>) { ...原创 2018-09-11 15:58:55 · 1141 阅读 · 0 评论 -
Kotlin的高级特性:8、Kotlin的内联函数
Kotlin 的内联函数Kotlin 的函数可以通过一个 inline 的修饰符,将这个函数在编译期直接内联到源码中。在 Kotlin 中,内部 Lambda 是不允许中断外部函数执行的inline 的 Lambda 可以中断外部函数调用crossinline 不允许 inline 的 Lambda 中断外部函数执行noinline 拒绝内联inline 的 Lambda...原创 2018-09-13 20:30:23 · 1832 阅读 · 0 评论