kotlin学习(一)

  kotlin语言是ide开发公司JetBrains 出品的一个基于jvm的静态类型编程语言,2017年5月17日在旧金山召开的I/O开发者大会上,谷歌宣布Kotlin语言同java和C++一样成为Android的官方语言。

  • 安装
    macOS操作系统可以使用homebrew安装

    1
    2
    brew update
    brew install kotlin
  • hello world
    创建test.kt文件,写入代码

    1
    2
    3
    fun main(args: Array<String>){
    println("hello world!")
    }

    编译

    1
    kotlinc test.kt -include-runtime -d hello.jar

    kotlinc 为编译指令,test.kt 要编译的文件, -include-runtime 表示包含kotlin运行时需要的库, -d 指定编译后的文件输出路径
    执行

    1
    kotlin hello.jar

    如果环境配置正确就可以正常输出”hello world!”啦,记一下我配置kotlin环境时遇到的坑,在kotlinc编译时报错,提示:

    1
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/jetbrains/kotlin/preloading/Preloader : Unsupported major.minor version 52.0

    通过搜索得知,这应该是jdk版本不对应导致的,kotlinc在这里使用的是jdk 1.8 ,而我之前写java代码时,安装的jdk版本是1.7,安装jdk 1.8,设置java环境变量为jdk1.8的路径就可以正常编译了

  • 变量声明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fun main(args: Array<String>){
    // 可变变量 var <标识符> : <类型> = <初始化值>
    // 不可变变量val <标识符> : <类型> = <初始化值>
    val a: Int = 10
    var b: Int = 20
    // a = 20 err :val修饰的变量不能修改
    b = 15
    println(a)
    println(b)
    }
  • 函数定义
    函数定义关键子为fun 参数定义使用 形参名: 类型

    1
    2
    3
    4
    5
    6
    fun sum(a: Int, b: Int): Int{
    return a + b
    }
    fun main(args: Array<String>){
    println(sum(3, 5))
    }
  • 可变长参数
    可变长形参关键字vararg

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fun sum(vararg arg: Int): Int{
    var result: Int = 0
    for (v in arg){
    result += v
    }
    return result
    }
    fun main(args: Array<String>){
    println(sum(1,2,3,4,5,6))
    }
  • lambda(匿名函数)

    1
    2
    3
    4
    fun main(args: Array<String>){
    val suml_lambda: (Int, Int) -> Int = {x,y -> x+y}
    println(suml_lambda(2,3))
    }
  • 字符串模版
    $ 表示一个变量名或者变量值
    $varName 表示变量值
    ${varName.fun()} 表示变量的方法返回值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fun main(arg: Array<String>) {
    var a = 1
    // 模板中的简单名称:
    val s1 = "a 的旧值是 $a"

    a = 2
    // 模板中的任意表达式:
    val s2 = "${s1.replace("is", "was")}, 现在修改后的值是 $a"
    println(s2)
    }
-------------本文结束感谢您的阅读-------------

本文标题:kotlin学习(一)

文章作者:fengxi

发布时间:2019年01月14日 - 16:01

最后更新:2019年04月04日 - 21:04

原始链接:https://super-storm.github.io/2019/01/14/kotlin学习(一)/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。