fun main(args: Array<String>) {
var arr = IntArray(10)
println(arr get size) // prints size of arr
arr print all //prints all elements of arr
我认为“获取大小”是2个infix函数,获取和大小,并且get函数采用size函数结果的参数,并且打印采用“ all”函数结果的参数,有什么解决方案吗?
您试图实现的目标没有多大意义,您不应该在生产中实现这些目标。仅出于教育建议,就可以实现类似的目标:
infix fun <T> Array<T>.get(parameter: String): Int {
when(parameter) {
"size" -> return this.size
}
throw NotImplementedError()
}
用法将是:
println(array get "size")
编辑:您要呼叫array get size
的版本如下所示:
enum class GetType { size }
infix fun <T> Array<T>.get(parameter: GetType): Int {
when(parameter) {
GetType.size -> return this.size
}
但是,如果您想调用size
而不是GetType.size
,则需要将所有内容都导入到枚举类中:
import GetType.*