• Kotlin基本语法


    Kotlin基本语法

    参考《第一行代码——Android(第3版)》做些笔记

    一、变量

    1、变量声明

    val aaa
    var bbb
    
    • 1
    • 2

    val常量 只能初始化赋值一次

    var变量 可以多次赋值

    无须声明类型,可类型推导。

    使用示例:

    fun printaaa(){
        val aaa = 123
        println("aaa is "+aaa)
    }
    
    • 1
    • 2
    • 3
    • 4

    +这里看出来,kotlin很现代,应该是有很多新语言特性。如果真的颠覆了Java,Java老白兔岌岌可危。

    注意 不加分号。不看缩进(这就是我讨厌python 的原因)。

    2、带类型声明

    val aaa:Int 
    
    • 1

    类型都封装到类里了,不再是关键字了?那是不是有method可用?

    常用类型和C/C++一样,不过第一个字母变成大写,变成了类。

    二、函数

    关键字fun来声明:

    fun func(para1:Int, para2:String):Int{
        code here
        return 0
    }
    
    • 1
    • 2
    • 3
    • 4

    ()可以为空,表示无参数。

    :Int表示返回值类型,没有返回值可以不写。

    这里有适用于单行代码函数的语法糖

    fun func(参数1,参数2):Int=单行表达式
    
    • 1

    :Int也可省略,利用上类型推导。

    三、逻辑控制

    1、if…else

    使用上和别的没区别,不同的是会把每个分支最后一句的表达式当作if…else语句的返回值。

    精简用法:

    fun largerNumber(num1: Int, num2: Int) = if (num1 > num2) num1 else num2
    
    • 1

    2、when

    类似于switch,但是不用break。感觉更好用。

    比较进入–匹配值 -> { 执行逻辑 }

    带参数:

    fun getnum(name: String) = when (name) {
        "aaa" -> 1
        "bbb" -> 2
        "cc" -> 3
        "d" -> 4
        else -> 0
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    不带参数:

    实际上使用起来,感觉像是把参数套入下方的匹配值表达式中比较,如果表达式成立,就执行右边的内容:

    fun getnum(name: String) = when {
        name.startsWith("Wang") -> 60
        name == "Li" -> 77
        name == "Zhang" -> 95
        else -> 0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    四、循环

    有两种循环,while 和 for in。

    while和其他的语言没什么区别。

    for in (我觉得 新出来的一些语言是不是都喜欢搞 for in 这种东西)比较不同。

    声明一个从小到大的闭区间:

    val range = 0..100
    
    • 1

    左闭右开区间:

    val range = 0 until 100
    
    • 1

    使用示例:

    fun main(){
        //升
        for (i in 0 until 100 step 10){
            println(i)
        }
        //降
        for (i in 100 downTo 50 step 5){
            println(5)
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    GAT学习
    手机如何投屏到电脑
    八、互联网技术——物联网
    数据结构-作业3
    JSD-2204-HTML-CSS-JavaScript-Day04
    用友NCCloud2021.11 专项漏洞补丁列表
    C++ Reference: Standard C++ Library reference: C Library: cstdio: fputs
    UiPath实战(10) - 往数据表(DataTable)中插入数据
    电子电器架构 —— 车载网关边缘节点总线转换
    Flink 核心概念综述
  • 原文地址:https://blog.csdn.net/kuno_y/article/details/125617399