Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在kotlin中的扩展函数中使用map()_Kotlin - Fatal编程技术网

如何在kotlin中的扩展函数中使用map()

如何在kotlin中的扩展函数中使用map(),kotlin,Kotlin,我想创建一个扩展函数,返回文件列表的总大小。代码如下: fun List<Files>.totalSize(){ return this.map { it.length() }.reduce { current, total -> current + total } } fun List.totalSize(){ 把这个还给我{ it.length() }.reduce{current,total->current+total} } 但是我得

我想创建一个扩展函数,返回文件列表的总大小。代码如下:

fun List<Files>.totalSize(){
    return this.map {
        it.length()
    }.reduce { current, total -> current + total }
}
fun List.totalSize(){
把这个还给我{
it.length()
}.reduce{current,total->current+total}
}
但是我得到了
未解析的引用:length
错误消息。显然,
并不像预期的那样引用单个文件,而是引用文件列表


我不明白问题出在哪里。有什么帮助吗?

正如你们在评论中提到的,这是一个愚蠢的打字错误。我不知道关于
sum()
。这是我最后的代码:

fun List<File>.totalSize(): Long{
    return this.map {
        it.length()
    }.sum()
}
fun List.totalSize():长{
把这个还给我{
it.length()
}.sum()
}

谢谢大家

正如你们在评论中提到的,这是一个愚蠢的打字错误。我不知道关于
sum()
。这是我最后的代码:

fun List<File>.totalSize(): Long{
    return this.map {
        it.length()
    }.sum()
}
fun List.totalSize():长{
把这个还给我{
it.length()
}.sum()
}

谢谢各位

我想你们需要的是
List
上的扩展,而不是
List
。你们的
totalSize
函数还应该指定一个返回类型(例如
Long
)。
reduce(…)
调用可以简化为
sum()
有趣的List.totalSize()=sum{it.length()等等,您正在尝试获取总文件大小吗?文件没有
length()
方法。或者您正在尝试获取列表的总大小
fun List.totalSize=sum{it.size}
我想您需要的是
List
上的扩展,而不是
List
。您的
totalSize
函数还应该指定返回类型(例如
Long
)。
reduce(…)
调用可以简化为
sum()
fun List.totalSize()=sum{it.length}
等等,您正在尝试获取总文件大小吗?文件没有
length()
方法。或者您正在尝试获取列表的总大小
fun List.totalSize=sum{it.size}