千家信息网

kotlin入门之标准函数与静态方法

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关kotlin入门之标准函数与静态方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。标准函数首先我们介绍标准函数 with、
千家信息网最后更新 2026年11月02日kotlin入门之标准函数与静态方法

今天就跟大家聊聊有关kotlin入门之标准函数与静态方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

标准函数

首先我们介绍标准函数 with、run、apply,如果你了解javascript,那理解kotlin的标准函数width、run、apply那简直不要太轻松。with、run、apply与javascript中的with的意义基本一模一样,只是含有一些细微差别。

with

with它接收两个参数,第一个参数可以是任意类型的对象,第二个参数是一个Lambda表达式。with函数会在Lambda表达式中提供第一个对象的上下文,可以直接使用对象的属性或方法,而不需要带上对象前缀。with函数会使用Lambda表达式中的最后一行代码作为返回值返回。

val result = with(obj) {        // 这里是obj的上下文环境        doSomething() // 调用obj的doSomething方法,无需 obj.doSomething() 这种形式调用}

run

run函数的用法与使用场景和with函数非常类似,只是做了些许改动。run函数无法直接调用,他需要在某个对象的基础上去调用它;其次run函数值接收一个Lambda表达式作为参数,并且会在Lambda表达中提供调用对象的上下文,同样将Lambda表达式中的最后一行代码作为返回值。

val result = obj.run {// 这里是obj的上下文环境doSomething() // 调用obj的doSomething方法,无需 obj.doSomething() 这种形式调用}

apply

apply函数和run函数在用法上基本一模一样,唯一区别是apply函数不会将Lambda表达式中的最后一行作为参数返回,而是会返回对象本身.

val result = obj.apply {// 这里是obj的上下文环境        doSomething() // 调用obj的doSomething方法,无需 obj.doSomething() 这种形式调用}// result == obj

静态方法

在java中定义一个静态方法如下:

public class Util {        public static void doSome() {                // todo        }}// 使用静态方法Util.doSome()

而Kotlin提供了几种方式去实现类似java中的静态方法

单例类实现静态方法

// 声明一个单例类object Util {        fun doSome() {                // todo        }}// 使用Util.doSome()

伴生类实现静态方法

单例类的写法会让类中的所有方法全部变成了类似静态方法的调用形式,如果我们只是希望类中的某些方法变成静态方法的调用形式怎么办呢?kotlin给我们提供了伴生类 companion object。

class Utl {        companion obj {                fun doSome() {                // todo                }        }}// 使用Util.doSome()

这个关键字实际会在Util类的内部创建一个伴生类,Kotlin会保证一个类中只会存在一个伴生类对象,调用Util.doSome()实际上是调用Util类中的伴生类对象的doSome方法。

注解实现静态方法

如果我们确确实实需要定义真正的静态方法,我们可以给单例类或companion object伴生类中的方法加上 @JvmStatic注解,那么kotlin编译器就会将这些方法编译成真正的静态方法。注意这个注释一般加在单例类或伴生类的方法上,如果加在普通方法上,会直接提示语法错误。

class Utl {        companion obj {                @JvmStatic                fun doSome() {                // todo                }        }}// 使用Util.doSome()

顶层方法实现静态方法

顶层方法指的是哪些没有定义在任何类中的方法,比如我们编写的main()方法。kotlin编译器会将所有的顶层方法全部编译成静态方法。所有的顶层方法在任何位置可以直接被调用,不用管包名路径,也不用创建实例。但如果这个方法在Java代码中调用,需要加上该方法所在的文件名。

// 如我们在Tool.kt 文件中创建了一个顶层方法// Tool.ktfun doSome() {        // todo}// 在java代码中使用public class JavaTest {        public void invokeStaticFunc() {                // 文件名+方法形式调用顶层方法                Tool.doSome()        }}

看完上述内容,你们对kotlin入门之标准函数与静态方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

方法 静态 函数 对象 形式 表达式 顶层 标准 上下 上下文 参数 代码 编译 一行 内容 只是 文件 环境 一模一样 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 互联网佳科技有限公司 苏州找大状互联网科技有限公司 厦门中拓互联网络科技有限公司 壕鑫互联网络科技 互联网科技公司有哪些 互联网公司会议桌创意科技软装饰 互联网科技实习生岗位职责 互联网对科技的发展 想开互联网科技公司怎么样 晋城互联网科技 特约风豹互联网科技为什么扣费 卓翼科技产业互联网合作 半导体是互联网高科技吗 互联网科技接地气 万物互联网智能科技 互联网界的黑科技 互联网科技的前景 山东蛋芒互联网科技有限公司 利用互联网等科技手段 上海睿民互联网科技有限公司 蓝思科技飞鸽互联网 A股互联网金融科技公司 浩特互联网科技 狮子座互联网科技有限公司 上海亿帐通互联网科技 亳州好赞互联网科技有限公司 易企秀互联网科技是做什么的 马化腾互联网科技教学 北京品多多互联网科技有限公司
0