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 }
相关推荐
IT乐手15 小时前
Android 写本地日志工具类
android·java
汤米粥15 小时前
Python调用百度搜索触发安全验证
开发语言·python
影寂ldy15 小时前
C# 五大加密算法全套实战(AES/DES对称、RSA非对称、MD5/SHA256哈希)
开发语言·c#·哈希算法
罗超驿16 小时前
6.Java LinkedList深度解析:从链表原理到源码实践
java·开发语言·链表
2501_9481069116 小时前
计算机毕业设计之jsp物业管理系统
java·大数据·开发语言·汽车·课程设计
非典型Android程序员16 小时前
Launcher学习总结
android
逝水无殇16 小时前
C# 反射详解
开发语言·后端·c#
xlxxy_16 小时前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm
北冥you鱼16 小时前
Go语言常用包使用指南:从标准库到第三方利器
开发语言·microsoft·golang