码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
  • 相关阅读:
    SQLITE存储时间数据报警语法错误,syntax error
    使用codeblock开发图形化游戏
    NL2SQL技术方案系列(5):金融领域NL2SQL技术方案以及行业案例实战讲解3--非LLM技术方案
    详解欧拉计划第757题:隐匿数
    vim的Dirvish中文文档
    已知起始点坐标、目的地方位角,计算沿着测地线飞行一定距离到达的目的地坐标
    Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人
    基于Java+vue前后端分离失物招领信息交互平台设计实现(源码+lw+部署文档+讲解等)
    【单目3D目标检测】SMOKE + MonoFlex 论文解析与代码复现
    Fisher信息量与Fisher观测信息量
  • 原文地址:https://blog.csdn.net/kuno_y/article/details/125617399
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号