更新至2019-10-14 Kotlin入门过程全记录...

2019-08-09  本文已影响0人  kennychaos

目录

看完相关知识要记得手撸一边代码
已经开始正式开发了...之后会在这些点上更上自己理解

kotlin与java的区别

  1. 在做kotlin时,思路应该进行转换,不再像java一样参数即对象,而是参数可以是一个规定好返回和入参的函数声明
  2. val <==> final
  3. 定义变量 var ,无初始值时需要赋予数据类型
  4. 定义函数 funUnit返回类型的返回的是无意义的值,可以直接忽略 , 在返回类型后面加上 ? 则表示可能返回null
  5. 打印变量 $ ,打印集合中的某个变量 ${list[index]}
  6. is <==> instance of
  7. for in <==> 增强for
  8. indexfor inwhile 的关键字,意为序号, list.indicesfor in 的索引集
  9. in 为区间检测
````
/* 使用范例 */
val list = listOf("a", "b", "c")
if (-1 !in 0..list.lastIndex) {
    println("-1 is out of range")
}
if (list.size !in list.indices) {
    println("list size is out of valid list indices range, too")
}
for (index in list.indices){
    println(" value is ${list[index]} ")
}
````
  1. 不再使用 new 创建类
  2. when <==> switch , 除非能保证所有case都包含了,否则else是必备的
  3. kotlin存在一个装箱的概念,所以存在一个 === 的判断,需要注意同一性相等性
    ps: 这点与js相似,泛类型语言
  4. 基础类型中 较小的类型不能隐式转换为较大的类型,所以进行转换的时候就需要用到
````
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
````
  1. 运算操作符
````
(只用于 Int 与 Long)
shl(bits) – 有符号左移 (Java 的 <<)
shr(bits) – 有符号右移 (Java 的 >>)
ushr(bits) – 无符号右移 (Java 的 >>>)
and(bits) – 位与z
or(bits) – 位或
xor(bits) – 位异或
inv() – 位非
```` 
  1. 数组 Array,库函数 arrayOf() 创建数组,库函数 arrayOfNulls() 创建一个指定大小,所有元素都为空的数组,另一种创建方式:
````
fun main() {
    // 创建一个 Array<String> 初始化为 ["0", "1", "4", "9", "16"]
    val asc = Array(5) { 
        j -> (j * j).toString() 
    }
    asc.forEach { println(it) }
}
````
  1. @JvmOverloads
  2. const <==> final
  3. open 在kotlin允许被继承时就需要用此修饰符修饰类
  4. data修饰符专门用于修饰数据model类,可以继承sealed使用data修饰的model类,在实现Parcelable做序列化的时候非常方便
  5. sealed修饰符专门用于修饰密封类,也就是类继承受限
  6. 泛型
  7. 对象表达式 <==> 匿名内部类
  8. 对象表达式 对象声明
    对象表达式是在使用他们的地方立即执行(及初始化)的 对象声明是在第一次被访问到时延迟初始化的
  9. 伴生对象的初始化是在相应的类被加载(解析)时,与 Java 静态初始化器的语义相匹配
  10. 标准函数

kotlin相关教程及资料

上一篇 下一篇

猜你喜欢

热点阅读