-
语言声明变量与内置数据类型
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")
}