📜  Kotlin 表达式、语句和块

📅  最后修改于: 2022-05-13 01:54:38.672000             🧑  作者: Mango

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 * bsumof(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

嵌套块中的变量范围:
在块的头部声明的变量在整个块和任何嵌套块中都是可见的,除非在内部块的头部声明了同名的变量。当一个新的声明在整个内部块中生效时,外部声明在内部块的末尾再次生效。因此,我们可以说变量具有嵌套作用域。