总结 kotlin中的关键字和常用方法

Kotlin 的关键字分为 硬关键字(Hard Keywords)软关键字(Soft Keywords)修饰符关键字(Modifier Keywords)。以下是分类整理的关键字列表及其核心用途:


1. 硬关键字(Hard Keywords)

这些关键字在 Kotlin 中严格保留,不能作为标识符(如变量名、函数名等)。

关键字用途
as类型转换或别名(如 import com.example.User as MyUser
break跳出循环
class定义类
continue跳过当前循环迭代
do用于 do-while 循环
elseif 条件分支
false布尔值假
for循环
fun定义函数
if条件判断
in检查元素是否在集合中,或用于循环迭代(如 for (i in 1..10)
!in检查元素不在集合中
interface定义接口
is类型检查(如 if (obj is String)
!is否定类型检查
null空值
object定义单例对象或匿名对象
package声明包
return从函数返回
super调用父类方法或构造函数
this当前对象引用
throw抛出异常
true布尔值真
try异常捕获
typealias定义类型别名(如 typealias FileTable = Map<String, File>
val声明不可变变量(只读)
var声明可变变量
when多条件分支(类似 switch
while循环

2. 软关键字(Soft Keywords)

在特定上下文中有特殊含义,其他情况下可作为标识符。

关键字典型场景
by委托模式(如 class MyList<T> : List<T> by ArrayList<T>()
catch异常捕获块(try { ... } catch (e: Exception) { ... }
constructor声明构造函数
delegate委托属性(通常与 by 一起使用)
dynamic标记动态类型(用于与 JavaScript 互操作)
field在属性访问器中引用幕后字段(如 var x: Int = 0; get() = field
file注解目标为文件(如 @file:JvmName("MyUtils")
finally异常处理的最终块
get自定义属性的 getter
import导入包或类
init初始化块(在类中执行初始化代码)
param注解目标为构造函数参数
property注解目标为属性
receiver扩展函数或属性的接收者
set自定义属性的 setter
setparam注解目标为属性 setter 的参数
where泛型约束(如 fun <T> copyWhenGreater(list: T, threshold: T) where T : Comparable<T>

3. 修饰符关键字(Modifier Keywords)

用于修饰类、函数、属性等的特性。

关键字用途
abstract抽象类或抽象方法
actual多平台项目(MPP)中标记平台具体实现
annotation定义注解类
companion定义伴生对象
const声明编译时常量(如 const val PI = 3.14
data标记数据类(自动生成 equals()toString() 等)
enum定义枚举类
expect多平台项目中声明预期声明(跨平台公共 API)
external标记外部声明(如 JNI 方法)
final禁止类或成员被继承或覆盖(默认隐含,可省略)
infix标记中缀函数(如 a to b
inline内联函数(优化高阶函数性能)
inner定义内部类(可访问外部类成员)
internal模块内可见
lateinit延迟初始化非空属性
noinline禁止内联 lambda 参数
open允许类或成员被继承或覆盖
operator标记运算符重载函数
out泛型协变(如 interface Source<out T>
override覆盖父类或接口的成员
private私有可见性(仅在声明范围内可见)
protected保护可见性(子类可见)
public公共可见性(默认修饰符)
reified具体化的泛型(内联函数中可访问泛型类型)
sealed定义密封类(限制子类范围)
suspend标记挂起函数(协程)
tailrec标记尾递归函数(编译器优化为循环)
vararg可变数量参数(如 fun sum(vararg numbers: Int)

注意事项

  1. 硬关键字不可用作标识符,如命名变量为 val 会导致编译错误。
  2. 软关键字在特定上下文外可用作标识符,例如:
    val import = 10  // 合法,因为 `import` 是软关键字
    
  3. 修饰符关键字需结合上下文使用,例如 open 仅用于类或成员。

以下是 Kotlin 中常用的核心方法及其典型使用场景,涵盖集合操作、字符串处理、作用域函数等高频功能:


一、集合操作常用方法

1. 转换与过滤

map: 对集合元素进行转换。

val numbers = listOf(1, 2, 3)
val squared = numbers.map { it * it } // [1, 4, 9]

filter: 过滤符合条件的元素。

val evenNumbers = numbers.filter { it % 2 == 0 } // [2]

flatMap: 将集合展平。

val list = listOf("Hello", "World")
val chars = list.flatMap { it.toList() } // [H, e, l, l, o, W, o, r, l, d]
2. 聚合与统计

sum / average: 计算总和或平均值。

val total = numbers.sum() // 6
val avg = numbers.average() // 2.0

groupBy: 按条件分组。

val words = listOf("apple", "banana", "cherry")
val byLength = words.groupBy { it.length } // {5=["apple"], 6=["banana", "cherry"]}
3. 查找与判断

first / last: 获取首个或最后一个元素(可带条件)。

val firstEven = numbers.first { it % 2 == 0 } // 2

any / all: 判断是否存在或全部满足条件。

val hasNegative = numbers.any { it < 0 } // false
val allPositive = numbers.all { it > 0 } // true

二、字符串处理常用方法

1. 分割与连接

split: 按分隔符分割字符串。

val str = "a,b,c"
val parts = str.split(",") // ["a", "b", "c"]

joinToString: 将集合转换为字符串。

val joined = listOf(1, 2, 3).joinToString("-") // "1-2-3"
2. 截取与替换

substring: 截取子串。

val sub = "Kotlin".substring(0, 3) // "Kot"

replace: 替换字符或正则匹配内容。

val newStr = "123abc".replace(Regex("\\d"), "X") // "XXXabc"
3. 判断与转换

isBlank / isNotBlank: 判断字符串是否为空或空白。

val isEmpty = "   ".isBlank() // true

toInt / toDoubleOrNull: 安全转换数字。

val num = "123".toInt() // 123
val numOrNull = "12.3".toDoubleOrNull() // 12.3 或 null

三、作用域函数(Scoping Functions)

1. 链式操作

let: 对对象执行操作并返回结果。

val length = "Kotlin".let { it.length } // 6

also: 执行副作用操作后返回原对象。

val list = mutableListOf(1).also { it.add(2) } // [1, 2]
2. 对象初始化

apply: 配置对象属性后返回自身。

val button = Button().apply {
  text = "Click"
  onClick { /* 点击事件 */ }
}

run: 结合对象操作与返回值。

val result = "Hello".run {
  length + substring(0, 2).length // 6 + 2 = 8
}
3. 空安全处理

?.let: 安全调用避免空指针。

val nullableStr: String? = null
nullableStr?.let { println(it) } // 不会执行

四、其他高频工具方法

1. 类型检查与转换

is / !is: 类型检查。

if (obj is String) println(obj.length)

as?: 安全类型转换。

val str: String? = obj as? String
2. 范围操作

in / !in: 判断元素是否在范围或集合中。

if (index in 0..list.lastIndex) { /* 安全访问 */ }
3. 延迟与缓存

lazy: 惰性初始化属性。

val heavyData: String by lazy { loadData() }

五、实用扩展函数

1. 集合扩展

takeIf / takeUnless: 按条件返回对象或 null

val even = numbers.takeIf { it.all { num -> num % 2 == 0 } }
2. 空安全处理

orEmpty: 将可空集合转为非空。

val safeList: List<String> = nullableList.orEmpty()
3. 数字处理

coerceIn: 限制数值在指定范围内。

val clamped = 15.coerceIn(0, 10) // 10

总结

Kotlin 的常用方法聚焦于 简洁性安全性,通过标准库和扩展函数大幅简化代码逻辑。掌握这些方法可以高效处理集合、字符串、空安全等常见场景,提升开发效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值