【问题标题】:Kotlin - Issue Extending Kotlin String ClassKotlin - 问题扩展 Kotlin 字符串类
【发布时间】:2022-12-19 19:48:49
【问题描述】:

我目前正在尝试使用文件中的方法扩展 Kotlins String 类字符串扩展.kt

fun String.removeNonAlphanumeric(s: String) = s.replace([^a-ZA-Z0-9].Regex(), "")

但是 Kotlin 不允许我在 lambda 中使用这个方法:

s.split("\\s+".Regex())
.map(String::removeNonAlphanumeric)
.toList()

错误是:

Required: (TypeVariable(T)) -> TypeVariable(R)
Found: KFunction2<String,String,String>   

让我感到困惑的是 Kotlins Strings.kt 有非常相似的方法和 我可以通过引用来调用它们,而不需要 Intellij 提出此类问题。任何建议表示赞赏。

【问题讨论】:

    标签: android string kotlin methods extending


    【解决方案1】:

    我认为这是因为 lambda 是一个匿名函数并且无法访问扩展文件的范围。

    检查此链接可能包含一些有用的信息: https://kotlinlang.org/docs/reference/extensions.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      相关资源
      最近更新 更多