Kotlin减少功能为2d列表不起作用
我需要得到一个2d列表的总大小。 这是我的实现:
fun totalSize(parts: List<List<String>>): Int { return parts.reduce { total, next -> total + next.size } }
我得到类型推断失败。 必需的Int,有名单。 但是next.size应该返回Int。
更好:总和期间的地图操作(来自@Ruckus T-Boom评论)
parts.sumBy { it.size }
原文:首先将内部列表映射到它们的大小(猜测Kotlin语法):
parts.map { l -> l.size }.reduce { total, i -> total + i }
在reduce
, total
的第一个值是列表的第一个元素,这也是一个列表。 所以reduce
的返回值的推断类型必须是List
。
你可以用fold
来代替:
return parts.fold(0, { total, next -> total + next.size })
- 如何将字符串数组传递给android电子邮件意图
- 复制Googlemap上的APK protobuf.meta文件复制商业用途
- Android Studio转换为Kotlin:在某些情况下使用@JvmStatic
- Kotlin配置几个口味
- Android Kotlin – 无法安排与警报管理器通知未来的日期
- 使用kotlin&greendao的Android Studio 3.0 Proguard将返回ClassLookupException
- 领域,初始化一个空的字符串数组返回“不支持的类型java.lang.String ”上生成
- 如何在Java中轻松使用Kotlin渠道生产者?
- Kotlin:ArrayIndexOutOfBoundsException在将DispatchTask转换为字符串期间