必须在使用之前声明Kotlin本地函数
在这个简单的代码示例中
fun testLocalFunctions() { aLocalFun() //compiler error: unresolved reference at aLocalFun fun aLocalFun() {} aLocalFun() //no error }
在语言的其他地方,允许在定义之前使用函数。 但对于地方的职能,似乎并不是这样。 参考Kotlin语言规范 ,本地函数部分仍标记为“TODO”。
由于这种约束不适用于其他类型的函数(顶级和成员函数),这是一个错误吗?
(当然,局部变量声明必须在使用之前出现,所以对局部函数的相同约束并不是不合理的。是否有一个权威性的权威源文档来讨论这种行为?)
这不是一个错误,这是设计的行为。
当在表达式中使用符号(变量,类型或函数名称)时,该符号将针对某个作用域进行解析。 如果我们简化方案,则范围由包,导入,外部声明(例如类型的其他成员)形成,如果表达式放置在函数内,范围也包括表达式之前的本地声明。
所以,在声明之前,你不能使用本地函数,就像你不能使用一个局部变量一样,这个变量只是在范围之外。
- 我怎样才能改变ColorPrimaryDark只是一个活动?
- 匿名Kotlin监听器中未解决的引用
- kotlin库模块中调试目录的未解决的参考
- Swift如果让和其他在Kotlin
- 清除使用CLion在Kotlin中导入本机C库的步骤
- 颠倒Kotlin中字符串的单词顺序
- 在Instant App中应用插件“kotlin-android”会导致“null不能转换为非空类型的com.android.build.gradleBasePlugin”
- Kotlin – 如何为RecyclerVIew实现ItemClickListener
- 是否有必要知道kotlin获得AAD(Associate Android Developer)认证?