Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这不编译的事实是否意味着它们不是一流的类型?
fun foo(s: String): Int = s.length // This won't compile. val bar = foo
有没有办法在不诉诸 OO 的情况下做到这一点?
不,它没有。
在 Kotlin 中,要将函数或属性作为值引用,需要使用可调用引用,但这只是获取函数类型值的一种语法形式:
fun foo(s: String): Int = s.length val bar = ::foo // `bar` now contains a value of a function type `(String) -> Int`
一旦你获得了这个价值,你就不会限制你如何使用它,这就是一流功能的意义所在。