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