Kotlin基础语法一

  • 语言声明变量与内置数据类型

    var:数据可变

    val: 数据不可变

  • 内置数据类型

    String 字符串

    Char 单字符

    Boolean true/false

    Int 整形

    Double 小数

    List 集合

    Set 无重复的元素集合

    Map 键值对的集合

  • Kotlin语言的类型推断

    val info : String = "Hello KT"

按照KT的语法,需要什么类型。由于KT有类型推断,所以写法可以简化

复制代码
val info = "Hello KT"
  • 编译时常量 const

    const val PI = 3.1415

性能优化:编译时内联替换避免运行时开销

Java互操作:会生成public static final字段

注解参数:编译时常量才能作为注解参数使用

总结:val保证引用不可变,而const val进一步要求值在编译期确定,适用于真正的常量场景

  • 查看Kotlin反编译后字节码

    点击顶部菜单栏 Tools → Kotlin → Show Kotlin Bytecode

  • range表达式

    number in 10..59

  • when表达式

1、基础用法(替代switch)

复制代码
when (x) {
    1 -> println("x是1")
    2, 3 -> println("x是2或3")  // 多条件合并
    in 4..10 -> println("x在4到10之间") // 范围判断
    else -> println("其他情况")
}

2‌、作为表达式返回值‌

复制代码
val result = when {
    x > 0 -> "正数"
    x < 0 -> "负数"
    else -> "零"
}
  • String模版

    复制代码
      val garden = "黄石公园"
      val time = 6
      println("今天天气很晴朗,去${garden}玩,玩了$time 小时")
  • 函数

    private fun function(age: Int, name: String) : Int {
    return 404
    }

Java叫方法,Kotlin叫函数。他们的不同点在于方法依赖对象,函数依赖对象,他依赖于File。

Kotlin函数这种写法,更突出输入和输出。而先有输入后有输出,从逻辑上来讲,更合理。

  • 函数参数的默认参数

    fun main() {
    action01("lisi", 89)
    action02("wangwu")
    action03()

    复制代码
      action03("赵六", 76)

    }

    private fun action01(name: String, age: Int) {
    println("我的姓名是:name, 我的年龄是:age")
    }

    private fun action02(name: String, age: Int = 77) {
    println("我的姓名是:name, 我的年龄是:age")
    }

    private fun action03(name: String = "王五", age: Int = 67) {
    println("我的姓名是:name, 我的年龄是:age")
    }

  • 具名函数参数

    fun main() {
    loginAction(age = 99, userpwd = "123", usernam = "de", username = "Derry", phonenumber = "123456")
    }

    private fun loginAction(username: String, userpwd: String, phonenumber: String, age: Int, usernam: String) {
    println("username:username, userpwd:userpwd, phonenumber:phonenumber, age:age")
    }

  • Unit类型

    // Java语言的void关键字(void是 无参数返回的 忽略类型)
    // 但是他是关键帧啊,不是类型,这很矛盾
    // Unit不写,默认也有,Unit代表 无参数返回的 忽略类型 == Unit类型类
    private fun doWork() : Unit {
    return println()
    }

    private fun doWork2() {
    return println()
    }

  • Nothing类型

    class AImpl : A {
    override fun show() {
    // 下面这句话,不是注释提示,会终止程序的
    TODO("not implemented")
    }
    }

Kotlin中的TODO()是一个‌故意抛出异常的实用函数‌,设计目的和典型用法如下:

一、核心设计意图

‌显式标记未实现代码‌

不同于Java的普通注释,TODO()会主动抛出NotImplementedError,强制开发者注意未完成的功能点

‌防止遗漏开发任务‌

在IDE中会高亮显示TODO(),避免开发者忽略未实现的代码逻辑

‌替代Java的throw new UnsupportedOperationException()‌

Kotlin通过标准化语法简化了临时占位实现

  • 反引号中函数

    fun main() {
    // 第一种情况:
    这是一个测试函数 20250610("Derry", "123456")

    复制代码
      // 第二种情况:// in  is  在kt里面就是关键字,怎么办呢? 使用反引号
      KtBase21.`is`()
      KtBase21.`in`()
    
      // 第三种情况: 很少发生
      `65465655475`()

    }

    private fun 这是一个测试函数 20250610(name: String, pwd: String) {
    println("模拟:用户名是name, 密码是:pwd")
    }

相关推荐
第九序言T4 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
龙亘川5 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人5 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas1006 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真7 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy17 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫128 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切8 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog9 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方10 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php