kotlin顶层函数和函数表达式怎么用
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章将为大家详细讲解有关kotlin顶层函数和函数表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。顶层函数不同于Java中函数只能定义在每个类里面,K
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
蚌埠咖啡点餐软件开发定制
软件开发为什么叫开发
网络安全宣传日观后感
市委网络安全协调处副处长李光营
网络安全知识问答网址
计算机网络技术物联网工程
软件开发与应用实习报告
网络安全工程专业能考研吗
西青区app软件开发
重庆铜梁蔬菜软件开发
数据库 view
网络安全周信安小测试
网络安全法影响哪些
服务器怎么隐藏端口号
海外服务器需要什么配置
网络技术能考哪些证书
戴尔服务器不断重启
django 数据库排序
云主机数据库受限
用友软件与数据库连接
王源参加网络安全活动
学生选课系统数据库设计实验报告
软件开发和诈骗的关系
网络安全工程专业能考研吗
微型计算机的数据库系统工程师
南宁找软件开发公司
计算机网络安全员面试题
服务器链接丢失怎么回事
中控h10修改数据库
火影忍者官方服务器