gpt4 book ai didi

methods - 类初始化时,kotlin 可以定义动态方法吗?

转载 作者:行者123 更新时间:2023-12-02 12:17:04 25 4
gpt4 key购买 nike

我的课:

class Demo {
init {
// define method here my some array:[a,b,c]
// such as fun Demo.a,Demo.b...
}
}

函数名称是动态的。

Kotlin 能做到这一点吗?

最佳答案

不,你不能在类中动态定义函数,但因为函数也是对象,你可以动态地存储它们(在字段、数组、映射中)并动态调用它们。使用 Kotlin 的一些语言特性,我们可以得到一个非常简洁的语法:

class Demo(name: String) {
private val functions: Map<String, () -> Any> = mapOf(name to { "Hello $name" })

operator fun get(name: String): Any? = functions[name]?.invoke()
}

fun main(args: Array<String>) {
val demo = Demo("Kirill")

println(demo["Kirill"])
}

输出:

Hello Kirill

关于methods - 类初始化时,kotlin 可以定义动态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com