Kotlin数据类的扩展函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin数据类的扩展函数相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的数据类

data class SuggestionResponse(
  val metadata: Metadata,
  val response: Response
)

data class Response(
 ///blah blah
)

data class Metadata(
  val timeleft: String,
  val totalTime: String
)

现在我要求将这些数据转换为不同类型的数据对象。我想写一个扩展函数来完成这个任务。让函数名称为hello

我想像这样调用这个扩展函数

suggestionResponse.hello()

如何编写扩展功能?。任何帮助将不胜感激

答案

只需在SuggestionResponse类上创建一个扩展函数,您就可以访问SuggestionResponse类的属性:

fun SuggestionResponse.hello() { 
    //`metadata` property is available here
    //`response` property is available here
    val time = metadata.timeleft
}

然后你就可以在SuggestionResponse类的实例上调用它:

suggestionResponse.hello()

More info about extension functions

以上是关于Kotlin数据类的扩展函数的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 扩展函数和运算符重载[第一行代码 Kotlin 学习笔记]

Kotlin扩展函数与重载操作符解析

Kotlin扩展函数与重载操作符解析

Kotlin Vocabulary | 使用 Kotlin 中的扩展提升代码可读性

Kotlin-扩展

Kotlin-扩展