当前位置: 首页 > news >正文

Kotlin标准函数和静态方法

标准函数 

with

第一个参数是一个类型或者对象,第二个参数是lambda表达式。其中第一个参数为第二个参数提供上下文,返回值是最后一行。案例代码:

fun main() {val list = mutableListOf<String>()var ret = with(list) {add("1")remove("1")toString()}println(ret)
}

run

只有一个参数,是lambda表达式。返回值是最后一行,且它需要一个对象去调用:

fun main() {var ret = mutableListOf<String>().run {add("1")add("2")remove("1")toString()}println(ret)
}

apply 

和run类似,但是无法指定返回值。默认返回的是调用对象本身:

fun main() {var ret = mutableListOf<String>().apply {add("1")add("2")remove("1")}println(ret.toString())
}

静态方法 

单例类/companion object

Kotlin本身没有static关键字来支持静态函数,但是它本身有单例类的特性可以支持类似静态函数的功能。但是若想只把某个类的某个函数声明为静态函数的话,就需要加上companion object:

class A{fun bb(){println("bb")}companion object{fun aa(){println("aa")}}
}
fun test(){A.aa()
}
fun main() {test()
}

注解(@JvmStatic

class A{fun bb(){println("bb")}companion object{@JvmStaticfun aa(){println("aa")}}
}
fun test(){A.aa()
}
fun main() {test()
}

注解只能用在单例类和companion object下。

http://www.lryc.cn/news/348072.html

相关文章:

  • RabbitMQ(四种使用模式)
  • 【UE5 C++】基础学习笔记——01 UObject的创建与使用
  • TCP及IP协议
  • 运筹系列92:vrp算法包VROOM
  • 【Spring Security注解详解】
  • C++学习笔记3
  • 基于SpringBoot的酒店(预约)客房管理系统的设计与实现+毕业论文
  • Rust 中的声明可见性
  • 让 计算机 将 数学 公式 表达式 的计算过程绘制出来 【mathematical-expression(MAE)】
  • Django——中间件
  • 景联文科技:用高质量数据采集标注赋能无人机技术,引领无人机迈入新纪元!
  • SpringBoot集成Redis,使用RedisTemple存储对象使用纯JSON格式
  • [muduo网络库]——muduo库的Reactor模型(剖析muduo网络库核心部分、设计思想)
  • vue中怎样清除computed的缓存
  • 代码大师的工具箱:现代软件开发利器
  • 整理好了!2024年最常见 100 道 Java基础面试题(四十三)
  • 【TypeScript模块简介以及使用方法】
  • Offer必备算法38_贪心算法四_八道力扣题详解(由易到难)
  • java8 转对象,Java8转Map,Java8转Llist
  • 【Pytest官方文档翻译及学习】2.1 如何调用pytest
  • RabbitMQ的用途
  • R语言软件安装及配置
  • 网络配置的加密存储
  • 你写代码,会关注时间复杂度吗?
  • 【连连国际注册/登录安全分析报告】
  • linux进阶高级配置,你需要知道的有哪些(10)-远程访问
  • 不显示 表格 style=“display: none;“ 这个默认是不显示的
  • Bittensor怎么挖?手把手教你,使用bitget钱包
  • 领略Java内部类的“内部”
  • PHP 提取数组中的特定的值