热门搜索 :
考研考公
您的当前位置:首页正文

kotlin基础之三 流程控制,函数

来源:东饰资讯网

1.when表达式

when取代了C风格语言的switch。相较switch而言,when语句显得更加的强大,灵活性更好。

  val x = 1
        when (x) {
            1 -> {
                Log.d("MainActivity", "x == 1")
            }
            2 -> {
                print("x == 2")
                Log.d("MainActivity", "x == 2")
            }
            else -> {
                Log.d("MainActivity", "其他")
            }
        }

-when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件。
1.如果很多分支需要用相同的方式处理,则可以把多个分支条件放在一起,用逗号分隔:

 when(a){
        1,3 -> println("当前传入值为$a")
        else ->  print("没有符合的匹配项")
    }

2.我们可以用任意表达式(而不只是常量)作为分支条件

      val x = 3
        when (x) {
            parseInt("3") -> Log.d("tag", "x->3")
            else -> Log.d("tag", "x->else")
        }

2.for循环.

val stringArrays : Array<String> = arrayOf("hello","kotlin","hello","android")
    for (item in stringArrays){
        println(item)
    }

2.函数.

2.1函数定义

定义格式为:权限修饰符 fun 函数名(参数名 :类型,...) : 返回值{}
函数从参数角度,可以分为有参函数以及无参函数;从返回值角度,可以分为有返回值的函数以及没有返回值的函数。那么函数一共就有4种类型,无参无返回值、无参有返回值、有参无返回值、有参有返回值。

//无参无返回值
fun test() {
    println("test")
}
 
//无参有返回值
fun test(): String {
    return"test"
}
 
//有参无返回值
fun test(content: String) {
   println(content)
}
 
//有参有返回值
fun test(content: String): String {
    retur ncontent
}
当然,没有返回值的函数,也可以明确指定返回值类型为Unit。
//无参无返回值
fun test():Unit{
    println("outerFun")
}
 
//有参无返回值
fun test(content: String) :Unit {
    println(content)
}
  • 上面的例子中没有可见性修饰符,那是因为Kotlin中默认为public可见性修饰符
  • ()圆括号必须存在,即使是没有参数的情况下
  • {}大括号必须存在,即使是没有函数体的时候,不过在Kotlin中有一个特例就是,函数具备返回值的时
    候,如果只用一个表达式就可以完成这个函数,则可以使用单表达式函数。在下面会详细的给大家讲解
  • 在函数没有返回值时可以省略其返回值
2.2函数默认参数.

对于默认参数,即使指一个函数中的参数具有默认值,这样在使用该函数的时候,可以省略一部分参数,可以减少函数的重载

 // 默认参数的函数使用
        defArgs()
        defArgs(1, 10f)
        defArgs(1, 10f, true)

   fun defArgs(numA: Int = 1, numB: Float = 2f, numC: Boolean = false) {
        println("numA  =  $numA \t numB = $numB \t numC = $numC")
    }

命名参数

        defArgs(numA = 1, numB = 10f, numC = true)

可变长度的参数
java中使用String...arg来表示长度不确定的参数,使用vararg关键字修饰变量,表示该类型参数的数量可变。通常因该把它放在参数列表的最后方。

add("xixi", "haha", "heihei")

fun add(vararg arag: String) {
for (x in arag) {
            Log.d("Tag", x);
        }

    }
Top