fun <T> foo(bar: T): T = bar
val t: Int = foo(1) // No need to declare foo<Int>(1) explicitly 但是为什么类型推断不适用于高阶函数呢当使用高阶函数时,Kotlin强制调用点为: val t = foo<Int>()(1) 即使显式指定了foo的返回类型,类型推断仍然会失
minimumBy接受一个应该用来比较两个元素的函数作为第一个参数。comparing是一个高阶函数,可用于转换a -> b类型的函数(其中b是可比较的类型,即Ord b => a -> b)。:: String -> String
findShortestWord s = minimumBy (comparing length) (words s