为了账号安全,请及时绑定邮箱和手机立即绑定

Kotlin 手记 -- 基础

标签:
Kotlin
fun main() {
    println("HelloWorld")
}


变量

var name1 = "ZhaoTian" // 普通变量 自动推导类型
var name2: String = "ZhangTian"

val name3 = "ChenTian" // 常量 类似java中的 final 修饰的变量
val age: Int = 33 // kotlin 中是对象数据类型,其他有 Short Long Float Double Boolean Char Byte


  1.  类型推导机制

  2. Kotlin完全拋弃了Java中的 基本数据类型,全部使用了对象数据类型

    https://img1.sycdn.imooc.com/ffed8968095383d007150509.jpg


函数

1. 普通函数

fun methodName(param1: Int, param2: Int): Int {
    return max(param1, param2)
}

2. 当函数体只有一行时可以简写为等号形式

fun methodName2(param1: Int, param2: Int): Int = max(param1, param2)


3. 函数的参数默认值


fun printParams(num: Int, str: String = "hello") {
    println("num is $num , str is $str")
}


当调用 printParams()函数时,可以选择给第二个参数传值,也可以选择不传,在不传的情况下就会 自动使用默认值


这个例子比较理想化,因为正好是给最后—个参数设定了默认值,现在我们将代码改 成给第—个参数设定默认值

fun printParams(num: Int = 100, str: String) {
    println("num is $num , str is $str")
}

Kotlin提供了另外—种神奇的机制,就是可以通过键值对的方式来传参,从而不 必像传统写法那样按照参数定义的顺序来传参

printParams(str = "hello")
printParams(str = "world", num = 123)

此时哪个参数在前哪个参数在后都无所谓,Kotlin可以准确地将参数匹配上



if条件语句


Kotlin中的if语句相比于Java有—个额外的功能,它是可以有返回值的,返回值就是if语句每 —个条件中最后—行代码的返回值

fun ifMethod1(param1: Int, param2: Int): Int {
    val value = if (param1 > param2) {
        param1
    } else {
        param2
    }
    return value
}


// 返回值类型自动推导
fun ifMethod2(param1: Int, param2: Int) = if (param1 > param2) param1 else param2



when条件语句


when语句有点类似于Java中的switch语句,但它又远 switch语句强大得多

匹配值 -> { 执行逻辑 }

当你的执行逻辑只有—行代码时,{ }可以省略

/**
 * 条件语句 when
 * 类似 java 中的 switch
 */
fun whenMethod1(name: String): Int {
    return when (name) {
        "Tom" -> 86
        "Jim" -> 83
        "Lily" -> 67
        else -> 0
    }
}


when语句还有—种不带参数的用法,能发挥很强的扩展性

fun whenMethod2(name: String): Int {
    return when {
        name.startsWith("Tom") -> 86
        name == "Jim" -> 83 // == 等效于 java中的equals()
        name == "Lily" -> 67
        else -> 0
    }
}


when语句允许进行类型匹配

is关键字就是类型匹配的核心,它相当于Java中的instanceof关键字

fun checkNumber(number: Number) {
    when (number) {
        is Short -> println("is short")
        is Int -> println("is int")
        is Long -> println("is Long")
        is Double -> println("is double")
        else -> println("other type")
    }
}



循环语句


1. for循环

fun forMethod1() {
    val range = 0..10 // 0<=x<=10 [1,10]
    for (i in range) {
        print(i)
    }
    val range2 = 0 until 10 // [0,10)
    for (i in range2) {
        print(i)
    }
    val range3 = 1..20 step 2 // 1,3,5...19
    for (i in range3)
        print(i)
    val range4 = 5 downTo 1  // [5,1]
    for (i in range4)
        print(i)
}


2. while循环


同java的while用法一致


数组


fun main() {
    val arrayInt: Array<Int> = arrayOf(1, 2, 3)
    val arrayObj: Array<Any> = arrayOf(1, "hello", 1.23, true)
    printArray(arrayObj)
    val array1 = arrayOfNulls<Int>(10)
    for (i in 0..9)
        array1[i] = i * 8
    printArray(array1)
    val array2 = Array<String>(5) { i -> (i * 10).toString() }
    printArray(array2)
    val array3 = IntArray(5)
    val array4 = IntArray(5) { 100 }
    printArray(array4)
    val array5 = IntArray(5) { it * it }
    printArray(array5)
}

fun printArray(array: Any) {
    when (array) {
        is Array<*> -> {
            array.forEach { print("$it ") }
            println()
            for (index in array.indices)
                print("${array[index]} ")
            println()
            for (value in array)
                print("$value ")
            println()
            for ((index, value) in array.withIndex())
                print("$index -> $value ")
            println()
        }

        is IntArray -> {
            array.forEach { print(it) }
            println()
        }
    }

}



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
3
获赞与收藏
0

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消