为什么此函数返回单位类型列表而不是返回[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")
}
为什么此函数返回单位类型列表而不是返回[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")
}