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
- 类型推导机制 
- Kotlin完全拋弃了Java中的 基本数据类型,全部使用了对象数据类型 
函数
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 点赞
										
				 评论
				共同学习,写下你的评论
评论加载中...
作者其他优质文章
					正在加载中
				
			感谢您的支持,我会继续努力的~
		扫码打赏,你说多少就多少
		赞赏金额会直接到老师账户
		支付方式
		打开微信扫一扫,即可进行扫码打赏哦
	 
                 
            
 
			 
					 
					