本文共 545 字,大约阅读时间需要 1 分钟。
学习视频:
对于 Kotlin,存在一个 「函数类型」的概念,即表示某个变量类型是一个函数类型,但是要注意,函数类型并不是一个通用类型,而一个指代的名词。
(a: Int)->Unit(a: Int)->String
上面即对应着两种函数类型,第一个是 (a: Int)->Unit
类型,第二个是 (a: Int)->String
类型。
于是,可以在 Kotlin 的函数传递函数类型的变量(底层实现是包装成对象)。就连普通的函数也可以被传递,只要跟函数类型规定的参数、返回值能够对应上即可,以及借助 ::
。
fun testMethod(para:((a: Int)->String)) { // TODO}// 顶级函数fun method1(para: Int) { return para+" for string"}class TestClass { // 成员函数 fun method2(para: Int) { return para+" for string" }}// 使用顶级函数testMethod(::method1)val tmp = TestClass()// 使用成员函数testMethod(tmp::method2)
转载地址:http://arerj.baihongyu.com/