Kotlin 扩展函数

embedded/2025/3/6 19:05:24/

Kotlin 扩展函数是一种强大的功能,它允许你为现有的类添加新的函数,而不需要修改原始类的代码。这意味着你可以为任何类添加方法,即使你没有访问该类的源代码。这对于创建通用工具函数、简化代码和提高可读性非常有用。

如何定义扩展函数
扩展函数的定义语法如下:

fun ClassName.methodName(parameters) {// 函数体
}

其中,ClassName 是你想要扩展的类的名称,methodName 是你为这个类添加的新函数的名称,parameters 是这个函数的参数列表。
示例
假设我们有一个 String 类,我们想要添加一个函数来计算字符串中单词的数量:

fun String.wordCount(): Int {return split(" ").size
}fun main() {val text = "Hello, world!"println(text.wordCount()) // 输出: 2
}

在这个例子中,我们为 String 类添加了一个名为 wordCount 的扩展函数,它将字符串按空格分割成一个单词列表,并返回列表的大小。
注意事项
命名冲突:如果两个扩展函数具有相同的名称和参数列表,那么只有最后一个定义的函数会被使用。
可空性:扩展函数可以安全地调用可空类型的属性或方法,即使对象为 null。如果对象为 null,扩展函数将不会执行,而是返回默认值。
类型检查:扩展函数在调用时不会进行类型检查,因此在使用扩展函数时需要小心,确保对象类型正确。


http://www.ppmy.cn/embedded/170541.html

相关文章

T-SQL 语言基础: SQL 数据库对象元数据及配置信息获取

目录 介绍目录视图 获取表和架构名称获取列信息 信息架构视图 获取表信息获取列信息 系统存储过程和函数 获取对象列表获取对象详细信息获取约束信息获取数据库属性信息 总结引用 介绍 在 SQL 数据库管理中,获取数据库对象的元数据信息是至关重要的。元数据提供了…

数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解

目录 一.冒泡排序 二.堆排序 三.插入排序 四.选择排序 五.希尔排序 六.快速排序 1.Lomuto版本(前后指针法) 2.Lomuto版本的非递归算法 3.hoare版本(左右指针法) 4.挖坑法找分界值: 七.归并排序 八.计数排序…

专题二将x减到0的最小操作数

1.题目 题目分析: 题目给出整数数组和整数x,整数x表示操作数值,可以移除数组的左右俩边一个数,每移除一次,x 就要减去移除数字的大小,如果x变为0就返回移除的次数,不等于0就返回-1. 2.算法原理…

初次使用 IDE 搭配 Lombok 注解的配置

前言 在 Java 开发的漫漫征程中,我们总会遇到各种提升效率的工具。Lombok 便是其中一款能让代码编写变得更加简洁高效的神奇库。它通过注解的方式,巧妙地在编译阶段为我们生成那些繁琐的样板代码,比如 getter、setter、构造函数等。然而&…

宇树科技G1人形机器人:从炫技到实用,AI驱动下的进化跃迁‌

‌ 宇树科技的G1人形机器人近期凭借“720度回旋踢”“走梅花桩”等高难度动作频频出圈,成为人形机器人领域的现象级产品。 G1人形机器人看似炫技的表演背后,实则暗含了技术突破的深意。G1的每一次技能升级,都是对机器人运动控制、平衡算法和A…

算法随笔_65: 多数元素_方法1

上一篇:算法随笔_64: 含特定字母的最小子序列-CSDN博客 题目描述如下: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1…

D033 neo4j知识图谱在线学习系统vue+django+neo4j【单课程】

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 🤍编号:D033 🤍智能问答(检索式):知识点所包含知识点、学习路线、预习知识、知识点概念 …

TCP、UDP、WebSocket 和 HTTP 教程

一、TCP(传输控制协议) 1. 原理 TCP 处于传输层,负责为应用层提供可靠的、面向连接的字节流服务。在数据传输前,它会通过"三次握手"建立连接,确保通信双方都具备收发数据的能力;传输过程中&…