三、Kotlin基本语法

1、变量

在Java中如果想要定义一个变量,需要在变量前面声明这个变量的类型,如int a表示a是一个整型变量,String b表示b是一个字符串变量,而Kotlin中定义一个变量,只允许在变量声明两种关键字:valvar

val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能被重新复制,对应Java中的final变量。

var(variable的简写)用来声明一个可变变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应Java中的非final变量。

class koltin1 {
    fun main(args: Array<String>) {
        val a = 1
        val b = 2
        val c = 3
        val d = 4
        val e = 5
        var ab = 6
        var cd = 7
    }
}

注意:1)Kotlin每一行代码的结尾是不用加分号的;2)Kotlin会自动推导类型

val a: Int = 10
#对一个变量延迟赋值的话,Kotlin就无法自动推导它的类型
#如显示声明变量a为Int类型,此时Kotlin就不会再尝试进行类型推导了,如果此时将一个字符串赋值给a,那么编译器就会报错。

Java基本数据类型 Kotlin对象数据类型 数据类型说明
int Int 整型
long Long 长整型
short Short 短整型
float Float 单精度浮点型
double Double 双精度浮点型
boolean Boolean 布尔型
char Char 字符型
byte Byte 字节型

什么时候使用val?什么时候使用var?

技巧:永远优先使用val来声明一个变量,而当val没有办法满足需求时再使用var,这样设计出来的程序就会更加强壮,也更加符合高质量的编码规范。

2、函数

函数是用来运行代码的载体,你可以在一个函数里编写很多行代码,当运行这个函数时,函数中的所有代码就会全部运行。

程序一旦运行,就是从main()函数开始执行的。

 

  1. fun是定义函数的关键字;
  2. 紧跟在fun后面的是函数名;
  3. 函数名后面紧跟着一对括号,里面可以声明该函数接受什么参数,参数的数量可以是任意多个,参数的声明格式是“参数名:参数类型”;
  4. 参数括号后面的那部分是可选的,用于声明该函数会返回什么类型的数据,上述示例就表示该函数会返回一个Int数据类型;
  5. 最后两个大括号之间的内容就是函数体了,可以在这里编写一个函数的具体逻辑。

 

fun lcs(a: String, b: String): Int {
        val m = a.length
        val n = b.length
        val dp = Array(m + 1) { IntArray(n + 1) }
        for (i in 1..m) {
            for (j in 1..n) {
                if (a[i - 1] == b[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1
                } else {
                    dp[i][j] =Math.max( dp[i - 1][j], dp[i][j - 1])
                }
            }
        }
        return dp[m][n]
    }
3、程序的逻辑控制

程序的执行语句主要分为3种:顺序语句、条件语句和循环语句 

3.1 if条件语句

Kotlin中的条件语句主要有两种实现方式:if 和 when

Kotlin中的 if 语句和Java中的 if 语句几乎没有任何区别

fun lcs(a: String, b: String): Int {
        val m = a.length
        val n = b.length
        if (m > n){
            return lcs(b, a)
        }else if (m == 0){
            return 0
        }else{
            val c = Array(m + 1, {0})
        }
        return 0
    }

注意:Kotlin中的if语句相比于Java有一个额外的功能,它是可以有返回值的!返回值就是if语句每一个条件中最后一行代码的返回值

fun lcs(a: Int, b: Int): Int {
        if (a > b){
            a
        }else{
            b
        }
        return 0
    }

语法糖:当一个函数只有一行代码时,可以省略函数体部分,直接将这一行代码使用等号串连在函数定义的尾部 

fun lcs(a: Int, b: Int) = if (a > b) {
            a
        }else{
            b
        }
    }
3.2 when语句 

Kotlin中的when语句有点类似于Java中的switch语句,但它又远比switch语句强大的多。

fun lcs(a : String) = if (a.equals("a")){
        "a"
    }else if (a.equals("b")){
        "b"
    } else {
        "c"
    }

when语句允许传入一个任意类型的参数,然后可以在when的结构体中定义一系列的条件,语法格式:

匹配值 -> { 执行逻辑 }

当执行逻辑只有一行代码时,{ }可以省略

 

fun lcs(a : String) = when (a){
        "a" -> "a"
        "b" -> "b"
        else -> "c"
    }
3.3 循环语句

Java中主要有两种循环语句:while循环和for循环,而Kotlin也提供了这两种,其中while和Java基本一致。 

Kotlin在for循环方面做了很大幅度的修改,Java中最常用的for-i循环在Kotlin中直接被舍弃,而Java中另一种for-each循环在Kotlin变成了for-in循环

  1. Kotlin代码表示一个区间:

  2. val range = 0..10

  3. 上述代码表示创建了一个0到10的区间,并且两端都是闭区间

使用for-in循环来遍历这个区间

fun lcs(range: IntRange)  {
        for (i in range){
            println(i)
        }
    }

 Kotlin中可以使用until关键字来创建一个左开右闭的区间:

  1. val range = 0 until 10

  2. 上述代码表示创建了一个0到10的左开右闭区间,它的数学表达式为【0,10).

fun main(){
for(i in 0 until 10 step 2)
}
for-in循环每次执行循环时会在区间范围内递增1,如果想要跳过一些元素,可以使用step关键字
上述代码表示在遍历【0,10)这个区间的时候,每次执行循环都会在区间范围内递增2

如果想要创建一个降序的区间,可以使用downTo关键字
fun main(){
 for(i in 10 downTo 1){
   println(i)
}


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/beiye_/article/details/130273891

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐