24.Kotlin学习笔记

前沿

《Kotlin for android developers》中文翻译

摘抄自:https://github.com/wangjiegulu/kotlin-for-android-developers-zh/blob/master/SUMMARY.md

Kotlin的优点

  • 它更加易表现:这是它最重要的优点之一。你可以编写少得多的代码。
  • 它更加安全:Kotlin是空安全的,也就是说在我们编译时期就处理了各种null的情况,避免了执行时异常。如果一个对象可以是null,则我们需要明确地指定它,然后在使用它之前检查它是否是null。你可以节约很多调试空指针异常的时间,解决掉null引发的bug。
  • 它是函数式的:Kotlin是基于面向对象的语言。但是就如其他很多现代的语言那样,它使用了很多函数式编程的概念,比如,使用lambda表达式来更方便地解决问题。其中一个很棒的特性就是Collections的处理方式。
  • 它可以扩展函数:这意味着我们可以扩展类的更多的特性,甚至我们没有权限去访问这个类中的代码。
  • 它是高度互操作性的:你可以继续使用所有的你用Java写的代码和库,因为两个语言之间的互操作性是完美的。甚至可以在一个项目中使用Kotlin和Java两种语言混合编程。

空安全

java代码中我们必须通过非空判断来避免NullPointerException,但是Kotlin是空安全的,我们需要借助安全操作符(?)来明确的指出一个对象是否能为空。

// 这里不能通过编译. Artist 不能是null
var notNullArtist: Artist = null

// Artist 可以是 null
var artist: Artist? = null

// 无法编译, artist可能是null,我们需要进行处理
artist.print()

// 只要在artist != null时才会打印
artist?.print()

// 智能转换. 如果我们在之前进行了空检查,则不需要使用安全调用操作符调用
if (artist != null) {
  artist.print()
}

// 只有在确保artist不是null的情况下才能这么调用,否则它会抛出异常
artist!!.print()

// 使用Elvis操作符来给定一个在是null的情况下的替代值
val name = artist?.name ?: "empty"

注释:Kotlin中var声明一个变量,和js中类似;val是一个常量,但是有别于java中的final关键字
比如:var i : Int = 3 (int类型的变量等于3) val name:String = "zhangsan"(字符创常量name赋值zhangsan)

环境配置(Android Studio)

  • 安装Kotlin插件,安装后重启AS
24.Kotlin学习笔记_第1张图片
安装Kotlin插件.png
  • 和平时你创建Android项目一样创建一个Android Project
  • 配置Gradle
  • 在Project的build.gradle中加入
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4"
24.Kotlin学习笔记_第2张图片
Paste_Image.png
  • 在Module的build.gradle中加入依赖
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-4"
compile "org.jetbrains.anko:anko-common:0.8.2"

未完待续……

你可能感兴趣的:(24.Kotlin学习笔记)