如何在kotlin中检查方法
我写了下面的代码。
fun check(list){ list.forEach{ when(it){ is Int -> something() is String -> something() //is method -> ??? else -> consume{it} }}} inline fun consume(f: () -> Unit){ f() }
但我不想在其他方面检查方法。 有什么办法在什么时候检查方法?
据我所知,你可以忽略else -> consume{it}
一部分。 forEach
函数的签名如下 :
inline fun <T> Iterable<T>.forEach(action: (T) -> Unit)
看到action
。 它以Unit
为输出。 这意味着你不需要返回任何东西( Unit
是Java的void
等价物)。
所以,总之你的代码可能是这样的:
fun check(list: List<*>) { list.forEach { when (it) { is Int -> something() is String -> something() //is method -> ??? } } }
我问了这个问题,但是我把答复的内容和我处理的内容结合起来,附上了我正在努力做的结果。
var arr = arrayOf{"String", {method()}} fun check(arr : Array<Any?>?){ arr.forEach{ when(it){ is Int -> println("int") is String -> println("str") else -> @Suppress("UNCHECKED_CAST") (it as () -> Unit)() }}}
谢谢