当前位置: 首页 > ds >正文

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 = 6println("今天天气很晴朗,去${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")
}
http://www.xdnf.cn/news/13524.html

相关文章:

  • float负数浮点值强转uint16_t
  • NIFI的处理器:ConsumeMQTT 2.4.0
  • 【Zephyr 系列 17】多协议网关实战:BLE + LoRa + UART + MQTT 综合调度系统设计与实现
  • CoW模式、线程的本地存储和生产者-消费者模式
  • 线程分离属性
  • 【Python】 -- 趣味代码 - 扫雷游戏
  • 使用obsutil工具在OBS上完成基本的数据存取【玩转华为云】
  • LLM 推理:LLM 路由和分层技术的表征和分析
  • 进行性核上性麻痹护理指南:全维度守护健康
  • LIGHT (数据库操作)
  • 【Css】css修改滚动条的样式
  • MySQL InnoDB更新流程
  • Python格式化:让数据输出更优雅
  • 场景题目记录
  • Java - Mysql数据类型对应
  • JxBrowser 8.8.0 版本发布啦!
  • 小天互连IM系统:即时通讯在远程工作中的应用
  • 系统思考:恶性循环
  • 走线太长导致的下冲(Undershoot)现象及解决
  • matplotlib画图报错
  • 使用 pytdx,`TdxHq_API` 接口下载数据的 AI 编程指引提示词
  • 微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
  • 第二十章 BKP
  • 华为认证入门怎么选?
  • Java-面向对象-类与对象(基础)
  • leetcode题解450:删除BST中的结点!调整二叉树的结构最难!
  • ​​绿色PCB通关密码:猎板无铅焊料+水性油墨的RoHS合规实践​​
  • SpringBoot基于RabbitMQ实现异步请求处理
  • CentOS7下的Flink 集群部署
  • 【LLM】深入解析MCP的三种传输方式实现