美文网首页
Kotlin的基本用法

Kotlin的基本用法

作者: 郑在学_blog | 来源:发表于2017-07-19 22:42 被阅读0次

    1. 环境配置

    基本的配置步骤很容易在网上找到,就不详细说明了。
    推荐配置:打开模块下的build.gradle文件,在apply plugin: 'kotlin-android'下面加入一行:apply plugin: 'kotlin-android-extensions'。这是一个Kotlin的扩展模块,可以让Activity自动关联xml布局中的View而不需要findViewById。

    2. 将java文件转化为kotlin文件的方法

    • 在AS下通过快捷键Ctrl+Shift+A打开FindAction,输入Convert Java File to Kotlin File 可以将项目中的java文件转换为kotlin文件。
    • 在菜单栏中点击“Code”菜单项,选择“Convert Java File to Kotlin File”即可根据之前配置将已有的Java文件转换为Kotlin文件。

    3. kotlin的基本用法

    1.语句的结尾不用分号

    2.定义

    • 定义变量和常量:在Kotlin中常量用val声明,变量用var声明,关键字在前面,类型以冒号:隔开在后面,也可以省略直接赋值,类型后带问号?表示可为空类型(默认空安全)。
        private var str: String? = null
        private var str1: String? = "hello world"
        private var str2 = "hello world"
        private val arrs = Array(3) { Array(2) { IntArray(1) } }
    
    • 定义方法: 在Kotlin中方法用fun声明,参数名在前,类型以冒号:隔开在后面。参数后冒号隔开的是返回值的类型。返回值为空可以省略。函数体可以是表达式,并可从中推断出返回值类型。函数参数可以设置默认值,当参数被忽略时会使用默认值。这样相比其他语言可以减少重载。
    fun sum(a: Int = 0, b: Int = 1): Int {
         return a+b
    }
    fun sum1(a: Int, b: Int) = a + b
    fun sum2(a: Int, b: Int){
    println(a+b)
    }
    
    • 定义类:在Kotlin中属性自动生成Java的getter/setter方法,方便在Java中调用,更方便赋值。括号内的参数代表构造方法的参数。
    class User(name: String) {
        var name: String? = null
        var age: String? = null
    }
    //赋值
    user.name = "zjj"
    user.age = "21"
    //取值
    val name = user.name
    val age = user.age
    

    3. 使用 this@lable 作为 lable

    为了在范围外部(一个类,或者表达式函数,或者带标签的扩展字面函数)访问 this ,我们需要在

    class User {
        inner class State{
            fun getUser(): User{
                //返回User
                return this@User
            }
            fun getState(): State{
                //返回State
                return this@State
            }
        }
    }
    

    4. 字符串模板

    在Java中拼接字符串的代码可读性都很差,在Kotlin字符串拼接变得非常简洁,只需用$后面加上参数名,复杂的参数要加上{}

    var userInfo = "name:${user.name},  age:$age"
    

    5. Ranges(范围)

    for (i in 4 downTo 1) print(i) // prints "4321"
    for (i in 1..4 step 2) print(i) // prints "13"
    for (i in (1..4).reversed()) print(i) // prints "4321"
    

    6. 条件

    if...else 正常使用,不过移除了switch用更强大的when替代,when子式可以是常量、变量、返回数值的表达式、返回Boolean值的表达式,强大到用来替换if...else if

    var x = 10
    when (x) {
        //常量
        2 -> println("等于2")
        //数值表达式
        if (x > 0) 1 else -1 -> println("大于0并等于1,或小于0并等于-1")
        //Boolean类型表达式
        in 1..5 -> println("范围匹配1-5")
        !in 6..9 -> println("不是6-9")
        is Int -> println("类型判断")
        else -> println("else")
    }
    // 代替if...else if
    when{
        x > 6 && x <= 10  ->  println("大于6小于等于10")
        x < 6 -> println("小于6")
        else -> println("else")
    }
    

    7. 循环

    while 和 do...while 同Java并无区别,for则有很大改变并多出了几个变种

    val list = ArrayList<String>()
    //递增for (int i = 0; i < list.size(); i++)
    for (i in list.indices) {
       print(list[i])
    }
    //递增for (int i = 2; i < list.size(); i++)
    for (i in 2..list.size-1) {
       print(list[i])
    }
    //递减for (int i = list.size(); i >= 0; i--)
    for (i in list.size downTo 0) {
        print(list[i])
    }
    //操作列表内的对象
    for (item in list) {
        print(item)
    }
    

    8. 返回和跳转

    在 Kotlin 中表达式可以添加标签,标签通过 @ 结尾来表示。
    现在我们可以用标签实现 break 或者 continue 的快速跳转:

    loop@ for (i in 1..100) {
        for (j in i..100) {
            if (...)
                break@loop
        }
    }
    

    break 是跳转标签后面的表达式,continue 是跳转到循环的下一次迭代。

    参考文章

    相关文章

      网友评论

          本文标题:Kotlin的基本用法

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