Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin函数真的是第一类类型吗?_Kotlin_First Class Functions - Fatal编程技术网

Kotlin函数真的是第一类类型吗?

Kotlin函数真的是第一类类型吗?,kotlin,first-class-functions,Kotlin,First Class Functions,这不编译的事实是否意味着它们不是第一类类型 fun foo(s: String): Int = s.length // This won't compile. val bar = foo 有没有办法不用OO就能做到这一点?您可以使用:: fun foo(s: String): Int = s.length val bar = ::foo 然后调用它: bar("some string") 这不编译的事实是否意味着它们不是第一类类型 fun foo(s: String): Int = s.

这不编译的事实是否意味着它们不是第一类类型

fun foo(s: String): Int = s.length
// This won't compile.
val bar = foo
有没有办法不用OO就能做到这一点?

您可以使用

fun foo(s: String): Int = s.length

val bar = ::foo
然后调用它:

bar("some string")
这不编译的事实是否意味着它们不是第一类类型

fun foo(s: String): Int = s.length
// This won't compile.
val bar = foo
不,没有

在Kotlin中,要引用函数或属性作为值,您需要使用,但它只是以下的语法形式:


一旦你得到了这个值,你就不受如何使用它的限制,这就是第一类函数的作用。

kotlin不能直接推断类型,记住它仍然是静态类型的:使用
var bar:(String)->Int=::foo
Java中的静态方法,例如
Files.IsDirectory
?我似乎不能以同样的方式让它工作。