kotlin顶层函数和函数表达式怎么用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关kotlin顶层函数和函数表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。顶层函数不同于Java中函数只能定义在每个类里面,K
千家信息网最后更新 2026年11月01日kotlin顶层函数和函数表达式怎么用
这篇文章将为大家详细讲解有关kotlin顶层函数和函数表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
顶层函数
不同于Java中函数只能定义在每个类里面,Kotlin采用了JavaScript 中的做法,可以在文件任意位置处定义函数,这种函数称为顶层函数
编译后顶层函数会成为文件类下的静态函数,比如在文件名是join.kt下定义的joinToString函数可以通过JoinKt.joinToSting调用,其中JoinKt是编译后的类名。
// 编译成静态函数// 文件名 join.ktpackage stringsfun joinToString() : String {...}/* Java */import strings.JoinKt;JoinKt.joinToSting(....)看下上面函数编译后的效果:// 编译成class文件后反编译结果
// 编译成class文件后反编译结果@NotNullpublic static final String joinToString(@NotNull Collection collection, @NotNull String separator, @NotNull String prefix, @NotNull String postfix) { Intrinsics.checkParameterIsNotNull(collection, "collection"); Intrinsics.checkParameterIsNotNull(separator, "separator"); Intrinsics.checkParameterIsNotNull(prefix, "prefix"); Intrinsics.checkParameterIsNotNull(postfix, "postfix"); StringBuilder sb = new StringBuilder(prefix); int index = 0; for(Iterator var7 = ((Iterable)collection).iterator(); var7.hasNext(); ++index) { Object element = var7.next(); if (index > 0) {sb.append(separator); } sb.append(element); } sb.append(postfix); String var10000 = sb.toString(); Intrinsics.checkExpressionValueIsNotNull(var10000, "sb.toString()"); return var10000; }// 默认函数值public static String joinToString$default(Collection var0, String var1, String var2, String var3, int var4, Object var5) { if ((var4 & 2) != 0) { var1 = " "; } if ((var4 & 4) != 0) { var2 = "["; } if ((var4 & 8) != 0) { var3 = "]"; } return joinToString(var0, var1, var2, var3);接下来看下Kotlin中很重要的一个特性,扩展函数。
扩展函数
扩展函数是类的一个成员函数,不过定义在类的外面
扩展函数不能访问私有的或者受保护的成员
扩展函数也是编译成静态函数
表达式函数体
通过下面这个简单的例子看下函数声明相关的概念,函数声明的关键字是fun,嗯,比JS的function还简单。
Kotlin中参数类型是放在变量:后面,函数返回类型也是。
fun max(a: Int, b: Int) : Int {if (a > b) {return a } else {return b}}当然, Kotlin是有类型推导功能,如果可以根据函数表达式推导出类型,也可以不写返回类型。
但是上面的还是有点繁琐,还能再简单,在 Kotlin中if是表达式,也就是有返回值的,因此可以直接return,另外判断式中只有一行一句也可以省略掉大括号:
fun max(a: Int, b: Int) {return if (a > b) a else b}还能在简单点吗?可以,if是表达式,那么就可以通过表达式函数体返回:
fun max(a: Int, b: Int) = if(a > b) a else b
最终只需要一行代码。
关于"kotlin顶层函数和函数表达式怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
函数
编译
表达式
文件
顶层
类型
篇文章
静态
一行
可以通过
成员
文件名
更多
结果
不错
实用
重要
繁琐
也就是
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
互联网科技未来
互联网 科技公司
互联网科技公司电话
互联网未来科技
互联网科技缩写
广州善班互联网科技
互联网科技美容
深圳互联网科技怎么样
湖南洣水互联网科技有限公司扣款
广州慧亚互联网科技怎么样
中国互联网有什么科技含量
知域互联网科技有限公司大骗子
上海钢联属于互联网科技股吗
张召忠谈中国互联网科技
东营紫格互联网科技
上海同邻互联网科技有限公司规模
互联网高科技行业有哪些企业
互联网科技平台产品运营
互联网科技创新方面的资料
涨乐互联网科技
金融科技与互联网金融
科技服务与互联网
成都互联网科技公司
安控科技rtu产品工业互联网
互联网科技博主是什么意思
央行互联网金融科技公司
以后互联网后是啥科技
搜狐科技互联网
国大互联网教育科技有限公司薪资