gpt4 book ai didi

function - 为什么有两个函数执行完全相同的操作?为什么必须在 Kotlin 中以不同的方式调用?

转载 作者:行者123 更新时间:2023-12-02 21:38:57 25 4
gpt4 key购买 nike

fun main() {
fun evenFn(num: Int): Boolean {
return num % 2 == 0
}
val evenFn = fun(num: Int) = num % 2 == 0
val list = listOf(1, 2, 3, 4, 5, 6)
println(list.filter(evenFn))
println(list.filter { evenFn(it) })
}

为什么我可以声明两个具有相同名称的 evenFns (一个存储在变量中,另一个刚刚定义)并且我必须以不同的方式调用它们?在 JavaScript 中,这样做会抛出一个错误,指出已经有一个 evenFn

有人可以解释为什么编译器对两个 evenFns 的处理方式不同吗?

最佳答案

fun EvenFn 是一个方法; val EvenFn 是一个局部变量,恰好具有函数类型。在 Kotlin(以及 Java、C# 等)中,允许在作用域内有一个同名的方法和局部变量,并且局部变量的类型不会影响这些规则。

关于function - 为什么有两个函数执行完全相同的操作?为什么必须在 Kotlin 中以不同的方式调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com