为什么此函数返回单位类型列表而不是返回[c,c]列表

fun convert(name:String) {
  val list = name.map {
    if (it == 'a') {
        return@map
    } else { it+1 }
  }
  println(list)
}


fun main(args: Array<String>) {
  convert("bbbb")
}

推荐答案

代码中的问题是map函数内部的return@map语句导致函数返回Unit类型.要解决这个问题,您可以使用mapNotNull而不是map来过滤掉‘a’字符,然后执行转换.以下是修改后的代码:

fun convert(name: String) {
    val list = name.mapNotNull {
        if (it == 'a') {
            null
        } else {
            it + 1
        }
    }
    println(list)
}

fun main(args: Array<String>) {
    convert("bbbb")
}

Android相关问答推荐

Android:点击操作栏返回按钮后应用程序无react

Android设备.Net Maui上的mp3文件列表

为什么Ionic-checkbox不总是刷新Android上的视图?

OverridePendingTransition已弃用,我该怎么办?

如何使用进度条和返回函数进行API调用,同时在Android上使用Kotlin保持高效?

FFmpeg Android 错误

为什么我的 APK 中包含来自旧版 Android 支持库的类?

当我想使用例如 material3 时,为什么我需要添加对 material 的依赖?底部导航?

如何在每次显示可组合项时执行代码(并且只执行一次)

Android - 如何使 TextInputEditText 的高度恰好为 2 行?

可从 Play store 下载链接访问未发布的应用

在 Android 房间迁移中获取上下文

具有数据库和升级潜力的移动应用程序开发(Android)供朋友使用

任务 ':app:kaptGenerateStubsDebugKotlin' 执行失败

在 jetpack compose 中交替使用 View.INVISIBLE

Android 设备断开连接后发送的 BLE 蓝牙数据

Jetpack compose :使用 rememberSaveable 时未应用待处理的合成

观察软键盘可见性,打开/关闭 Jetpack Compose

在delphi中将Jnet_uri转换为Tbitmap

如何获取 Material Design 3 的底部导航栏高度?