Android studio3.0以上
-
android studio新建kotlin项目的时候,会自动将gradle关于kotlin的环境配置好,不过在kotlin官方网站也有gradle配置的教程。
-
官方pdf下载:https://kotlinlang.org/docs/kotlin-docs.pdf
Kotlin怎么学
-
mapped types:掌握java数据类型对应kotlin中的哪些数据类型 (page151)
-
变量的定义不同
var 变量名: 变量类型
1
2
3
4
|
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哪些地方让人很爽
-
基本数据类型自带 (page 29)
toType,转各种类型。
plus,连接方法
还可以给数据类型定义指定的方法
1
2
|
fun String.spaceToCamelCase() { ... }
"Convert this to camelcase"
.spaceToCamelCase()
|
2.在引号里就可以直接操作变量(有点像php的语法)
1
2
3
|
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)
1
|
fun maxOf(a: Int, b: Int) =
if
(a > b) a
else
b
|
java的话得多{}和return以及;
2)当不为null执行一段代码
1
2
3
4
|
val data = ...
data?.let {
...
// execute this block if not null
}
|
3.with 执行一个对象的多个方法
4.java 7 读写文件 (但是要求API 26)
1
2
3
|
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)
1
2
3
4
5
|
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的感觉)
1
2
3
4
5
6
|
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哪些地方让人头痛
-
访问作用域/类修饰词/继承
http://blog.csdn.net/ddwhan0123/article/details/77928519
本文转自屠夫章哥 51CTO博客,原文链接:http://blog.51cto.com/4259297/1964591,如需转载请自行联系原作者