Android studio3.0以上

  1. android studio新建kotlin项目的时候,会自动将gradle关于kotlin的环境配置好,不过在kotlin官方网站也有gradle配置的教程。

  2. 官方pdf下载:https://kotlinlang.org/docs/kotlin-docs.pdf





Kotlin怎么学

  1. mapped types:掌握java数据类型对应kotlin中的哪些数据类型 (page151)


  2. 变量的定义不同

    var 变量名: 变量类型

val a: Int = 1 // immediate assignment
val b = 2 // `Int` type is inferred
val c: Int // Type required when no initializer is provided
c = 3 // deferred assignment

 var代表变量,val代表常量。


3.定义List和Map,相当简单 (page23)

4.类和对象 (page 41)

 1)实例化对象不需要new 关键字

5.方法复写需要override关键字

 


   


 





Kotlin哪些地方让人很爽

  1. 基本数据类型自带     (page 29)

    toType,转各种类型。

   plus,连接方法

  

  还可以给数据类型定义指定的方法

fun String.spaceToCamelCase() { ... }
"Convert this to camelcase".spaceToCamelCase()

 


2.在引号里就可以直接操作变量(有点像php的语法)

fun printSum(a: Int, b: Int) {
    println("sum of $a and $b is ${a + b}")
}

  控制台打印:System.out: sum of 3 and 5 is 8

  想想一下在java里打印上面的一句话,得要多少个引号,多么的蛋痛!

3.语法简洁

 1)

fun maxOf(a: Int, b: Int) = if (a > b) a else b

 java的话得多{}和return以及;

 2)当不为null执行一段代码

val data = ...
data?.let {
... // execute this block if not null
}

 3.with 执行一个对象的多个方法

 4.java 7 读写文件 (但是要求API 26)

  

val stream = Files.newInputStream(Paths.get("/some/file.txt"))
stream.buffered().reader().use { reader ->
println(reader.readText())



4.变量+?控制变量是否可以为null

5.Loop (page:20)

6.when分支判断很强大

7.in range判断(page:21)

for (i in 1..100) { ... } // closed range: includes 100
for (i in 1 until 100) { ... } // half-open range: does not include 100
for (x in 2..10 step 2) { ... }
for (x in 10 downTo 1) { ... }
if (x in 1..10) { ... }

8.集合链式写法(有点RxJava的感觉)

val items = listOf("apple", "banana", "kiwi","agelababy")

items.filter { it.startsWith("a") }
       .sortedBy { it }
       .map { it.toUpperCase() }
       .forEach { println(it) }

9.优雅的嵌套循环break,再也不用自己写什么标记控制了。

(i ..) {
     (j ..) {
        (j > ) (i > ) (ij)
    }
}


Kotlin哪些地方让人头痛

  1. 访问作用域/类修饰词/继承

  http://blog.csdn.net/ddwhan0123/article/details/77928519