Kotlin 表达式、语句和块
Kotlin 表达式 –
表达式由产生单个值的变量、运算符、方法调用等组成。与其他语言一样,Kotlin 表达式是通常为产生新价值而创建的任何程序的构建块。有时,它可用于为程序中的变量赋值。需要注意的是,一个表达式可以包含另一个表达式。
- 变量声明不能是表达式(var a = 100)
- 赋值不是表达式 (b = 15)
- 类声明不是表达式(类 XYZ {….})
注意:在 Kotlin 中,每个函数都至少返回一个值 Unit,因此每个函数都是一个表达式。
举个例子:
Java
fun sumOf(a:Int,b:Int): Int{
return a+b
}
fun main(args: Array){
val a = 10
val b = 5
var sum = sumOf(a,b)
var mul = a * b
println(sum)
println(mul)
}
Java
fun main(args: Array){
val a = 1000
val b = 999
var c = 1122
var max1 = if(a > b) a else b
var max2 = if(c > a) c else a
println("The maximum of ${a} and ${b} is $max1 " )
println("The maximum of ${c} and ${a} is $max2 " )
}
Java
fun main(args: Array){
val sum: Int
sum = 100
println(sum) // single statement
println("Hello");println("Geeks!") // Multiple statements
}
Java
fun main(args: Array) { //start of main block or outer block
val array = intArrayOf(2, 4, 6, 8)
for (element in array) { // start of inner block
println(element)
} // end of inner block
} // end of main block
输出:
15
50
这里, a * b和sumof(a, b)都是表达式并且返回整数值。 sumOf()是一个函数,返回传递给它的两个参数的总和。
Kotlin if表达式 –
在Java中, if是一个语句,但在 Kotlin 中, if是一个表达式。之所以称为表达式,是因为它比较 a 和 b 的值并返回最大值。因此,在 Kotlin 中没有三元运算符(a>b)?a:b因为它被if 表达式所取代。
if(condition) condition met! else condition not met!
让我们举个例子,返回两个变量中的最大值:
Java
fun main(args: Array){
val a = 1000
val b = 999
var c = 1122
var max1 = if(a > b) a else b
var max2 = if(c > a) c else a
println("The maximum of ${a} and ${b} is $max1 " )
println("The maximum of ${c} and ${a} is $max2 " )
}
输出:
The maximum of 1000 and 999 is 1000
The maximum of 1122 and 1000 is 1122
Kotlin 声明 –
语句是任何编程语言的句法单元,它表示要执行的某些操作。一个程序由一个或多个语句的序列组成。在Java中,语句总是以分号结尾,但在 Kotlin 中,分号(;) 是可选的。
- 变量的声明是一个声明。
val marks = 90
var grade = 'A'
- 给变量赋值也是一个语句。
var sum = 10 + 20 // it is a statement
- 这里, 10 + 20是一个表达式,但var sum = 10 + 20是一个语句。
多个语句:
多条语句是指在一行中编写多个语句时的语句。
例如:
Java
fun main(args: Array){
val sum: Int
sum = 100
println(sum) // single statement
println("Hello");println("Geeks!") // Multiple statements
}
输出:
100
Hello
Geeks!
Kotlin 块 –
块是用大括号 ({...}) 括起来的一段软件代码。一个块可以由一个或多个语句组成,前面是变量的声明。一个块包含一个或多个嵌套在其中的块。每个函数都有自己的块,主函数也包含一个块。
例如:
Java
fun main(args: Array) { //start of main block or outer block
val array = intArrayOf(2, 4, 6, 8)
for (element in array) { // start of inner block
println(element)
} // end of inner block
} // end of main block
输出:
2
4
6
8
嵌套块中的变量范围:
在块的头部声明的变量在整个块和任何嵌套块中都是可见的,除非在内部块的头部声明了同名的变量。当一个新的声明在整个内部块中生效时,外部声明在内部块的末尾再次生效。因此,我们可以说变量具有嵌套作用域。