Kotlin学习 - 相关知识

Kotlin是一种针对Java平台的静态类型编程语言,完全兼容Java 6。简洁,安全,务实,专注于与Java代码的互操作性。
目前主要应用在服务端,Android开发方面。

先来大概看看Kotlin的代码是什么样子的。

data class Person(val name:String,
val age:Int? = null)

fun main(args:Array<String>){
val persons = listOf<Person>(Person("Alice"),
Person("Bob",age = 29))
val oldest = persons.maxBy { it.age?:0 }
println("The oldest is :$oldest")
}

// 输出 The oldest is :Person(name=Bob, age=29)

这里遇见了几个简单的概念,在后面的学习笔记中会有详细的解释,这里只是先了解一下:
data class声明了一个数据类。
Int?是可以为空类型,实参的默认值
fun main声明了入口函数
maxBy是lambda表达式,Elvis运算符
println里面使用了字符串模板

在定义变量的时候可以不指定类型,Kotlin通过类型推导来决定。减少了冗余的代码
var i = 1

函数式编程

Kotlin类型系统对可空类型的支持,通过编译期检测可能存在的空指针异常。
对函数类型的支持。
函数式编程的核心概念:

  • 头等函数—把函数当做值使用,可以用变量保存它,把它当参数或返回值
  • 不可变性—使用不可变对象,保证它们的状态在其创建之后不能在变化
  • 无副作用—使用的是纯函数。此类函数在输入相同时会产生同样的结果,并且不会修改其他对象的状态,也不会和外界交互。
    带来的好处:
  1. 简洁
  2. 多线程安全,避免了不安全的修改
  3. 测试更加容易,可以独立测试。
    fun findAlice() = findPerson{ it.name == "Alice" }
    findPerson()包含了寻找一个人的公共逻辑。