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);
}
}
网友评论