Kotlin基础(①)

open 关键字:打破 Kotlin 的"默认封闭"规则

Kotlin 复制代码
// 基类必须加 open 才能被继承
open class Animal {
    // 方法也要加 open 才能被子类重写
    open fun makeSound() {
        println("Some sound")
    }
}

class Dog : Animal() {
    override fun makeSound() {
        println("Woof!")
    }
}

// 使用
val dog = Dog()
dog.makeSound() // 输出: Woof!

Lambda 表达式:简化匿名函数

Kotlin 复制代码
val numbers = listOf(1, 2, 3)

// ✅ 正确:单数参数名(代表每个元素)
numbers.filter { number -> number > 1 }

// ❌ 错误:复数参数名(容易误解为整个集合)
numbers.filter { numbers -> numbers > 1 } // 编译错误!因为 `numbers` 是单个元素,不能和数字比较
Kotlin 复制代码
data class Student(val name: String, val score: Int)

val students = listOf(
    Student("小明", 90),
    Student("小红", 80)
)

// ✅ 正确:单数参数名,代表每个学生对象
students.filter { student -> student.score > 85 }

// ✅ 也可以用 `it` 简写
students.filter { it.score > 85 }
相关推荐
小怡同学..17 分钟前
c++系列之智能指针的使用
开发语言·c++
黑客飓风39 分钟前
JavaScript性能优化实战
开发语言·javascript·性能优化
云博客-资源宝1 小时前
Android Manifest 权限描述大全
android·开发语言·php
xzkyd outpaper1 小时前
Android DataBinding 与 MVVM
android·计算机八股
zzq19962 小时前
Android 14.0 framework默认将三按钮的导航栏修改为手势导航。
android
是紫焅呢2 小时前
I排序算法.go
开发语言·后端·算法·golang·排序算法·学习方法·visual studio code
ii_best2 小时前
[按键精灵安卓/ios脚本插件开发] 遍历获取LuaAuxLib函数库命令辅助工具
android·ios
飞飞帅傅2 小时前
go语言位运算
开发语言·后端·golang
范纹杉想快点毕业3 小时前
Qt构造函数详解:布局与快捷键实战
c语言·开发语言·数据库·c++·qt·命令模式
iceslime3 小时前
数据分析和可视化:Py爬虫-XPath解析章节要点总结
开发语言·python