学习kotlin系列之四(数组和表达式)

1、数组

1)数组的定义

使用关键字 arrayOf

//定义数组并赋值
    //张三 李四 王五
    val arr= arrayOf("张三","李四","王五")
    //10 20 30
    val arr1= arrayOf(10,20,30)

    //保存不同类型的值
    val arr3= arrayOf("张三","李四","10","a")

2)数组元素的修改

对数组中某个角标的元素进行修改

/**
 * 数组元素的修改
 */
fun main(args: Array<String>) {
    val array= arrayOf(1,3,5,3,6)
    //把5修改成9
    array[2]=9
    array.set(2,9)
    array.forEach {
        print(it)
    }
}

3)数组元素角标的查询

查找某一类角标都有对应的api方法

 val array = arrayOf("张三", "李四", "张四", "王五", "张三", "赵六")
    //查询第一个张三的角标
    println(array.indexOf("张三"))
    //查找最后一个张三的角标
    println(array.lastIndexOf("张三"))
    //高阶函数
    //第一个姓张的人的角标
    val index1 = array.indexOfFirst {
        it.startsWith("张")
    }
    println(index1)

    //最后一个姓张的人的角标
    val index2 = array.indexOfLast {
        it.startsWith("张")
    }
    println(index2)

    array.indexOfFirst {
        it=="张三"
    }
    //输出结果
    0
    4
    0
    4
2、各种表达式

1)when表达式

简单的基于java的switch 复杂的是基于java的if else实现的,java是声明式语法 kotlin是表达式语法。when表达式是最后一个是返回值。

fun main(args: Array<String>) {
    //按着年龄做该干的事
    var year: Int = 13
    when (year) {
        is Int -> {
            print("是Int类型")
        }
        in 1..6 -> {
            print("呵呵长身体")
        }
        in 7..11 -> {
            System.out.print("上小学")
        }
        in 12..15 -> {
            System.out.print("上中学")
        }
        in 16..18 -> {
            System.out.print("上高中")
        }
        19 -> {
            System.out.print("上大学")
        }
        else -> {
            System.out.print("上社会大学")
        }

    }
}

2)函数表达式

kotlin可以把大括号省略掉 以及return

 var a = 10
 var b = 20
/**
 * 普通写法
 */
fun addMethod(a: Int, b: Int): Int {

    return a + b
}

/**
 * 函数表达式写法
 */
fun addMethod1(a: Int, b: Int): Int = a + b

补充:可以使用双冒号引用函数

fun main(args: Array<String>) {
    var a = 10
    var b = 20

//    addMethod(a, b)
//    println(addMethod1(a, b))
    val padd = ::addMethod//使用双冒号引用函数
    //两种调用方式
    println(padd(10, 20))
    println(padd.invoke(10, 30))//处理函数参数为空的情况

    //函数表达式另外一种类型  匿名函数
    val padd1: (Int, Int) -> Int = { a: Int, b: Int -> a + b }


}

/**
 * 普通写法
 */
fun addMethod(a: Int, b: Int): Int {

    return a + b
}

/**
 * 函数表达式写法
 */
fun addMethod1(a: Int, b: Int): Int = a + b
3、参数

1)具名参数和默认参数

fun main(args: Array<String>) {
//   sendRequest("www.baidu.com")
//   sendRequest("www.baidu.com","POST")
    sendRequest(path = "www.baidu.com", method = "POST")//具名参数 参数位置可以变化

}

fun sendRequest(path: String, method: String = "GET") {//默认参数

    println("path=$path,  method=$method")
}

2)可变参数

fun main(args: Array<String>) {
    val a = 10
    val b = 20
    val c = 30
    val result = add(a,b,c,10,60,40)
    println(result)
}

```kotlin
在这里插入代码片

//vararg可变参数
/**

  • 无论传递多少个我都能求他们的和 可变参数
    */
    fun add(vararg a: Int): Int {
    var result = 0
    a.forEach {
    result += it
    }
    return result
    }

发布了59 篇原创文章 · 获赞 13 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Hunter2916/article/details/103446120