Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制:
- 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以在较旧的 Android
设备上运行而无任何问题。Kotlin 工具在 Android Studio 中会完全支持,并且兼容 Android 构建系统。 - 性能:由于非常相似的字节码结构,Kotlin 应用程序的运行速度与 Java 类似。 随着 Kotlin 对内联函数的支持,使用
lambda 表达式的代码通常比用 Java 写的代码运行得更快。 - 互操作性:Kotlin 可与 Java 进行 100% 的互操作,允许在 Kotlin 应用程序中使用所有现有的 Android 库
。这包括注解处理,所以数据绑定和 Dagger 也是一样。 - 占用:Kotlin 具有非常紧凑的运行时库,可以通过使用 ProGuard 进一步减少。 在实际应用程序中,Kotlin
运行时只增加几百个方法以及 .apk 文件不到 100K 大小。 - 编译时长:Kotlin 支持高效的增量编译,所以对于清理构建会有额外的开销,增量构建通常与 Java 一样快或者更快。
- 学习曲线:对于 Java 开发人员,Kotlin 入门很容易。包含在 Kotlin 插件中的自动 Java 到 Kotlin
的转换器有助于迈出第一步。Kotlin 心印 通过一系列互动练习提供了语言主要功能的指南。
基础
- 首先当然是HelloWorld!
HelloWorld.kt
fun main(args:Array<String>){
println("HelloWorld")
}
由这简单的三行代码可以看出kotlin方法关键字fun,输出和java类似为println。
kotlin的方法定义为fun 方法名(参数):返回值类型{}。
2. 基本类型
Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。
具体和java差不多
kotlin用var 来定义一个变量,val来定义一个常量
表达方式
var one = 1
var doubleNum = 1.1
var floatNum = 1.1f
val oneMillion = 1_000_000 //常量。你可以使用下划线使数字常量更易读
var isOpen = false
//如果需要定义基本类型
var number:Int = 2
var hello:String = "HelloWorld!"
//字符串中可以包含字符串表达式
val i = 10
val s = "i = $i" // 求值结果为 "i = 10"
//或者
val s = "abc"
val str = "$s.length is ${s.length}" // 求值结果为 "abc.length is 3"
3.方法(函数)
在前面HelloWorld中有看到main方法了。这里简单写一个加法函数就可以基本了解kotlin的函数入门了
如果允许某个参数为空的话则需在类型后加?(fun plus(x:Int?,y:Int?){}
fun main(args:Array<String>){
var x = 1
var y = 2
println("$x + $y = ${plus(x,y)}"
}
fun plus(x:Int,y:Int):Int{
return x+y
}
当然这里可以了解一下kotlin的人机交互
fun main(args:Array<String>){
println("请输入第一个数字")
var xStr = readLine()
println("请输入第二个数字")
var yStr = readLine()
//xStr?.toInt()表示如果xStr不为空就转成Int,但是下面要执行加法则下x,y不能为空
//var x = xStr?.toInt()
//var y = yStr?.toInt()
//xStr!!.toInt()表示xStr输入进来一定不为空
var x = xStr!!.toInt()
var y = yStr!!.toInt()
println("$x + $y = ${plus(x,y)}"
}
fun plus(x:Int,y:Int):Int{
return x+y
}
函数表达式
上面的plus函数还可以这样写
//可以直接返回x+y
fun plus(x:Int,y:Int):Int = x+y
//或者可以在一个函数里面直接定义
fun main(args:Array<String>){
var plus = {x:Int,y:Int -> x+y}
var result = plus(1,2)
//还有另外一种是
var plus1:(Int,Int)->{x,y -> x+y}
var result1 = plus1(1,2)
}
4.条件控制
kotlin的条件控制if和else用法和java一样
fun main(args:Array<String>){
var num = 10
if(num > 0)
println("$num 大于0")
else
println("$num 小等于0")
}
5.when表达式
相当于java的switch,但是有所区别
fun main(args:Array<String>){
var num = 1
when(num){
0 -> println("$num 的值是0")
1 -> println("$num 的值是1")
2 -> println("$num 的值是2")
else -> println("$num 无法识别")
}
}
6.kotlin的区间以及for循环
例如[1,100]var nums = 1 .. 100
开区间[1,100)var nums = 1 until 100
fun main(args:Array<String>){
var nums = 1 .. 100
var result = 0
for(num in nums){
result = result + num
}
println("结果为${result}")
//加入步长step
for(num in nums step 2){
println(num)
}
}
7.list和map
直接看代码把
fun main(args:Array<String>){
var lists = listOf("第一个","第二个","第三个")
for(list in lists){
println(list)
}
//如果需要下标
for((i,e) in lists.withIndex()){
println("$i $e")
}
}
map需要引入TreeMap
import java.util.TreeMap
fun main(args:Array<String>){
var map = TreeMap<String,String>()
map["好"] = "good"
map["学习"] = "study"
println(map["好"] + map["好"] + map["学习"])
}
这几天简单的学习了一下kotlin语言,泛泛的记录一下,仅供参考,如有误导尽请原谅!