----
泛型扩展函数 可以支持 任何类型的 接收者 ( 调用函数的实例对象 ) , 同时还可以 获取 接收者 的 泛型参数类型 ;
泛型扩展函数 格式 : 一般 泛型扩展函数 都是为了 配合 链式编程..., 其 返回值类型 就是 接收者泛型参数类型 ;
fun T.函数名(参数列表): T {
函数体
}
代码示例 : 在该代码中 , 定义了一个 泛型扩展函数 , 为泛型 T 定义了扩展函数...printSelf , 在函数中打印 接收者 , 并将接收者返回 , 该泛型可以是任意类型 ;
在 main 函数中 , 先调用 字符串实力对象 的 printSelf 泛型扩展函数打印自身 , 然后调用...字符串的扩展函数 String.addStr 拼接字符串 , 最后再次 调用 字符串实力对象 的 printSelf 泛型扩展函数打印自身 , 这样实现了一个链式编程 ;
// 泛型扩展函数
fun..., 造成堆内存开销 ;
该函数中涉及到 两个泛型 T 和 R , 在 fun 关键字后声明 ,
为 泛型 T 定义了一个扩展函数 let ,
传入 (T) -> R 类型的匿名函数 , 该 Lambda