Kotlin语言概述(一)- 语言特性
Kotlin是一种高级强类型语言,可以在Java VM上运行。
它具有如下特性:
1.代码简洁,代码量少,易学易懂。
例如:
/**
* 定义数据类Student
* @property id String 学号
* @property name String 姓名
* @property gender String 性别
* @constructor
*/
data class Student(val id:String,val name:String,val gender:String)
代码会自动生成数据类Student对应的hashCode()、equals()、toString()等方法,而不需要程序编写代码来完成。
2.Kotlin安全性好。
Kotlin提供一些特性可以避免运行时崩溃。例如:
自动监测对象是否为null,避免出现空指针异常的问题。
提供对象的安全访问,如安全调用,非空断言运算,可空运算符针对可空对象做出不同的处理
3.Kotlin是基于Java VM语言
Kotlin是基于Java VM语言,可以与Java代码交互,可以直接使用Java类库。可以开发任何Java环境生态的应用。
import java.util.Scanner
/*
* Main
* 定义主函数
*/
fun main(){
//定义Scanner对象
val sc = Scanner(System.`in`)
println("输入你的名字:")
var name = sc.next()
println("你好!${name}欢迎来到Android世界!")
name = sc.next()
println("你好!欢迎 $name 新世界!")
}
4.Kotlin支持函数式编程
Kotlin语言支持函数式编程,较少样板代码可以方便地传递代码块。代码会更见简单。例如:
传统做法:
import java.util.function.Consumer
fun main(){
val s=setOf("hello","kotlin","language","world")
//传统的做法
//创建接口Consumer匿名对象
val consumer:Consumer<String> = object:Consumer{
override fun accept(t: String) {
println(t)
}
}
//调用
s.forEach(consumer)
}
采用函数式编程的方式:
完整方式:
fun main(){
val s=setOf("hello","kotlin","language","world")
//函数式编程的处理方式
s.forEach{it:String->
println(it)
}
}
因为Consumer接口只有一个方法accept,accept只有一个参数,因此简化Lambda方式为:
fun main(){
val s=setOf("hello","kotlin","language","world")
//函数式编程的处理方式
s.forEach{
println(it)
}
}
上述两段代码段的运行功能完全一致,运行结果如下:
hello
kotlin
language
world
如果需要过滤并打印输出含有"o"的字符串的代码如下:
fun main(){
//定义字符串集合
val s=setOf("hello","kotlin","language","world")
//筛选除包含”o"字符的字符串,并打印输出
println(s.filter{it.contains("o")})
}
运行结果:
[hello, kotlin, world]
5.Kotlin多平台共享
Kotlin代码可以在多平台中共享,这些平台包括Android、iOS、Web和本地。
以Android Studio为例,只需要在Android Studio中安装Kotlin MutiplePlatform Mobile插件,如下图所示,
图1
就可以实现一个Kotlin代码在不同平台下的共享。
例如:启动Android Studio
创建一个新的项目,选择Kotlin Multiplatform App,如图2所示:
图2
图3 继续设置新项目的相关参数
图4 设置新项目的应用名称等参数
单击”Finish"
图5 项目的层次结构
详细的内容可以参考
Get started with Kotlin Multiplatform for mobile