Kotlin语法总结

本文详细介绍了Kotlin编程语言的基本语法,包括变量、函数、条件语句、循环、面向对象编程、接口、单例类、Lambda表达式等。讨论了Kotlin中的可见性修饰符、数据类、默认值和空安全操作符。此外,还提到了如何在Android中使用Kotlin,例如启动Activity的方式。
摘要由CSDN通过智能技术生成


参考郭神的第一行代码第三版第二章以及我自己在项目中的一些积累总结一下Kotlin语法

  • 编译型语言:源代码一次性编译成计算器可识别的二进制文件,如c和c++
  • 解释型语言:一行行读取编写的源代码,实时解释成计算机可识别的二进制数据再执行,如Python和JavaScript
    Java和Kotlin虽然也是先编译后运行,但是编译生成的是特殊的class文件,只有在虚拟机上才能识别,所以两者也属于解释型语言

在AndroidStudio中新建一个File可以编写Kotlin代码了(前提是你先有kotlin的环境)

fun main(){
   
    println("Hello World")
}

变量

  • val:用来声明一个不可变的变量
  • var:声明一个可变的变量
    • 提问:为什么要有val这个关键字?
      这样做是为了解决Java中final这个关键字没有被充分利用的问题,因为一个变量是可变的话你不知道会在什么时候被别人无意中修改,产生不可预计的Bug
    • 什么时候使用val或var呢
      永远优先使用val来声明变量,当val没法满足需求再用var,这样程序会更加健壮,更加规范
fun main(){
   
    val a = 10
    println("a = " + a )
}
fun main(){
   
    var a = 10
    a = a * 10
    println("a = " + a )
}

可以看出Kotlin可以自己推导出a的类型,当然也可以自己再定义一下

var a : Int = 10

会发现Int首字母是大写的,这是Kotlin抛弃了基本数据类型,全部使用了对象数据类型,所以java中的所有基本数据类型,在Kotlin中首字母都为大写
Int,Long,Short,Float,Double,Boolean,Char,Byte

函数

fun LargerNumber(a: Int, b:Int): Int{
   
    return max(a,b)
}

语法糖,当函数体只有一行代码时使用,但是结合Kotlin的其他特性,这种写法可以广泛使用

fun LargerNumber(a: Int, b: Int): Int = max(a, b)

因此:在kotlin中没有三目运算符变为了if…else
用法

text = if (text == "test") text else "Unknown"

if条件语句

这里用了value来重新赋值是因为函数的参数无法重新赋值,默认为val

fun LargerNumber(a: Int, b: Int) : Int{
   
    var value = 0
    if(a>b){
   
        value = a
    }else {
   
        value = b
    }
    return value
}

简化1:在if分支中最后一行代码可以作为返回值,可以用来直接返回或者赋值给其它变量

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

继续简化:结合之前的语法糖,虽然这里不是一行代码,但是和只有一行代码效果也也一样,只是返回了一个值而已,所以可以用

fun LargerNumber(a: Int, b: Int) = if (a > b) a else  b

when条件语句

switch的改进版,在switch中只能支持整形,字符串变量的条件,而且每一个case后都要加一个break,when解决了这些痛点
匹配值->{执行逻辑}

fun getScore(name : String) = when(name){
   
    "Mike" -> 90
    "Tom" -> 80
    "田哥" ->100
    else ->0
}

还可以进行类型匹配

fun checkNumber(num : Number) = when(num){
   
        is Int -> "is int"
        is Double -> "is double"
        else -> "not anything"
}

还可以不带参数

fun checkNumber(num : Number) = when{
   
        num is Int -> "is int"
        num is Double -> "is double"
        else -> "not anything"
}

这种写法在匹配多个的时候有用,如开头为Tom的成绩都为80

fun checkNumber(name :String) = when{
   
        name.startsWith("Tom") -> 80
        name == "mike" -> 100
        else -> 60
}

while循环

a初始值为10,输出9876543210,因为判断完成之后会减一,然后再输出

while (a-->0){
   
        print(a)
    }

for-in循环

区间为[1,10]

	val range = 1..10
    for(i in range){
   
        print(i)
    }

区间为[1,10)

 val range = 1 until 10
    for(i in range)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值