Kotlin-入门

作者: 洛城夜雨 | 来源:发表于2017-05-25 11:50 被阅读386次

2017-05-17的Google I/O大会上,Android团队宣布将Kotlin作为Android开发的官方编程语言,作为一名android开发当然要跟的上潮流,今天就来了解一下Kotlin。

Kotlin介绍

Kotlin是一门用于现代多平台应用的静态编程语言,由JetBrains公司设计开发并开源。也许有人不知道JetBrains,但是Android Studio、Intellij IDEA、WebStorm或者PyCharm总知道其中的一个吧,是的这些都是JetBrains的杰作。

既然说了多平台应用的编程语言,那我们就看看支持哪些平台吧:

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心印 通过一系列互动练习提供了语言主要功能的指南。

Kotlin基本语法

因为之前有使用过Intellij IDEA的经验,我这里就直接在Intellij IDEA下尝试kotlin的基本语法了。

Hello World

package demo
/**
 * main函数
 * @param args String数组
 * @return Unit
 */
fun main(args: Array<String>) {
    println("Hello World!")
}

第一行是可选的包名,然后我们声明一个包级函数main,它返回Unit类型并且使用一个字符串数组作为参数。

注意:

  • 包的声明应处于源文件顶部,目录与包的结构无需匹配:源代码可以在文件系统的任意位置。
  • 分号是可选的。
  • 如果一个函数不返回任何有用的值,它的返回类型是 UnitUnit 是一种只有一个值--Unit 的类型。这个 值不需要显式返回。

接下来在Intellij IDEA中运行Hello World。如下图所示,直接点击编辑区左侧的kotlin图标,然后选择第一项即可。

运行结果如下:<u>成功打印出Hello World!</u>

(红色报警信息暂时不用管,根据google的搜索结果得知这个是mac下开发工具的一个bug,不影响开发调试。)

定义函数

接下来简单学习一下函数定义。

Kotlin 中的函数使用 fun 关键字声明,函数参数使用 Pascal 表示法定义,即 name: type。参数用逗号隔开。每个参数必须有显式类型。

/**
 * 带有两个Int参数、返回Int类型的求和函数
 * @param a 整数a
 * @param b 整数b
 * @return Int
 */
fun sum(a: Int, b: Int): Int {
    return a + b
}

单表达式函数:当函数返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可。

// 当返回值类型可由编译器推断时,显式声明返回类型是可选的,因此圆括号后的返回值类型Int是可以省略的
fun sum2(a: Int, b: Int) = a + b

定义局部变量

使用关键字val 声明为只读的变量,

val a: Int = 1  // 立即赋值
val b = 2   // 自动推断出 `Int` 类型
val c: Int  // 如果没有初始值类型不能省略
c = 3       // 明确赋值

使用关键字var 声明为可变的变量

var num = 5 // 自动推断出 `Int` 类型
num += 1

kotlin的注释

和java一样,kotlin支持单行、多行以及文档注释

// 这是一个单行注释
/*
这是一个
多行注释*/
/**
 * 这是一个文档注释
 * @param a 整数a
 * @param b 整数b
 * @return Int
 */
fun foo(a: Int): Int {
    return a * 2
}

使用字符串模板

字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成,或者用花括号扩起来的任意表达式。

fun useStringTemplates(){
    var money = 100
    println("I have $money yuan")

    val num = 1
    val num2 = 3
    println("$num + $num2 = ${num + num2}")
}

下面看一下运行的结果

相关学习文档

  1. 官网文档https://kotlinlang.org/docs/reference/
  2. Jake wharton关于kotlin的视频https://www.youtube.com/watch?v=A2LukgT2mKc

相关文章

网友评论

    本文标题:Kotlin-入门

    本文链接:https://www.haomeiwen.com/subject/ijoaxxtx.html