Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >`map` Kotlin中的返回类型错误

`map` Kotlin中的返回类型错误
EN

Stack Overflow用户
提问于 2020-11-24 02:50:14
回答 2查看 62关注 0票数 1

我不知道我那段简单的Kotlin代码出了什么问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fun scan(): List<File> {
    val comics: List<File> = ArrayList()

    val extPath = Environment.getExternalStorageDirectory().absolutePath.toString()
    File(extPath).walkTopDown()
        .forEach { file ->
            if (isComic(file)) {
                comics.add(file)
            }
        }

    return comics
}


fun getComics(): List<Comic> {
    return scan().map { comicFile ->
        val comic = Comic()
        comic.path = comicFile.path.toString()
        return comic
    }
}

(我知道getExternalStorageDirectory()现在已经贬值了,这只是考特林速成课程的一种快捷而肮脏的方式)

Android Studio抱怨我应该在transform函数中返回List<Comic>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-24 03:14:37

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    fun getComics(): List<Comic> {
    return scan().map { comicFile ->
        val comic = Comic()
        comic.path = comicFile.path.toString()
        comic
    }
}

删除' return ',{}是一个内联函数,如果在内联函数中使用'return Comic‘,它将返回’getComics: comic‘作为comic()的结果

票数 3
EN

Stack Overflow用户

发布于 2020-11-24 04:27:14

内联lambda中的Return语句用于从父函数的作用域返回,在这种情况下可以使用限定的return或最后一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fun getComics(): List<Comic> {
    return scan().map { comicFile ->
        val comic = Comic()
        comic.path = comicFile.path.toString()
        return@map comic  // qualified returns
    }
}

如果lambda不明确并且嵌套在map name@ { return@name ... }中,您还可以更改其名称。

但实际上你可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fun getComics(): List<Comic> {
    return scan().map { comicFile ->
        Comic().apply { path = comicFile.path.toString() }  // last line return
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64979562

复制
相关文章
Java 8中的Optional 类型与 Kotlin 中的可空类型Java 8中的Optional 类型与 Kotlin 中的可空类型Kotlin 中的可空类型《Kotlin极简教程》正式上架:
Java 8中的Optional 类型与 Kotlin 中的可空类型 在 Java 8中,我们可以使用 Optional 类型来表达可空的类型。 package com.easy.kotlin; import java.util.Optional; import static java.lang.System.out; /** * Optional.ofNullable - 允许传递为 null 参数 * Optional.of - 如果传递的参数是 null,抛出异常 NullPointerEx
一个会写诗的程序员
2018/08/17
2.6K0
Kotlin中的可空类型
Java的NullPointException是经常遇到的异常,也是最让人头疼的一个异常。Kotlin为了解决这个问题,引进了可空类型,将运行时可能发生异常提前到编译期发现。 Kotlin中有可空类型,这种类型表示取值可能为空;而一般类型,则取值不能为空。区别是类型后面有一个?,表示这个类型是可空的。 举个栗子:
用户1108631
2019/08/17
1.5K0
JS 中为啥 ['1', '7', '11'].map(parseInt) 返回 [1, NaN, 3]
Javascript 一直是神奇的语言。 不相信我? 尝试使用map和parseInt将字符串数组转换为整数。打开 Chrome 的控制台(F12),粘贴以下内容,然后按回车,查看输出结果:
前端小智@大迁世界
2019/07/02
4.8K0
kotlin的Map集合
意味着我们创建出来的map是不可变的,即我们只能使用无法改变我们map中的数据,我们只能获取集合中的数据而无法对集合中的数据进行新增和修改。
全栈程序员站长
2022/08/30
6420
mybatis返回值为map类型时怎么处理_构造函数不能有返回类型
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.8K0
mybatis返回值为map类型时怎么处理_构造函数不能有返回类型
Golang中的map数据类型
今天咱们来学习一下golang中的map数据类型,单纯的总结一下基本语法和使用场景,也不具体深入底层。map类型是什么呢?做过PHP的,对于数组这种数据类型是一点也不陌生了。PHP中的数组分为索引数组和关联数组。例如下面的代码:
兔云小新LM
2021/11/21
1.4K0
Golang中的map数据类型
关于 Go 中 Map 类型和 Slice 类型的传递
关于 Go 中 Map 类型和 Slice 类型的传递Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Println(m) } func mdMap(m map[int]int) { m[1] = 100 m[2] = 200 } 结果是 map[2:200 1:100] 我们再修改如下 m2: func main() { var m map[int]
李海彬
2018/03/27
1.5K0
关于 Go 中 Map 类型和 Slice 类型的传递
Kotlin | 6.Kotlin 的类型系统
本章内容包括: 处理 null 的可空类型和语法 基本数据类型和它们对应的Java类型 Kotlin 的集合,以及它们和Java的关系 6.1 可空性 /**-----------
Jingbin
2021/03/02
2.3K0
【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
Kotlin 1.5.0 后语法与之前不同 , Float 类型不能直接转为 Byte 类型 , 需要先转为 Int , 然后转为 Byte 类型 ;
韩曙亮
2023/03/29
3670
【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
kotlin基础--List、Set、Map
调用listOf函数创建集合,我们可以通过和数组一样的方式: "变量[下标]" 来获取元素,或者使用get函数获取
aruba
2021/12/06
6720
kotlin基础--List、Set、Map
【Kotlin】集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )
文章目录 一、Map 集合 二、获取 Map 值 三、Map 遍历 四、可变 Map 集合 一、Map 集合 ---- 调用 mapOf 函数 创建 Map 集合 , 键值对 元素有两种初始化方式 : 使用 to 函数进行初始化 : 在参数中使用 键 to 值 的方式进行初始化 ; 使用 Pair 对象进行初始化 : 传入 Pair(键, 值) 进行初始化 ; to 函数原型如下 , 其本质也是返回 Pair 类型的实例对象 ; /** * 从this和[that]创建类型为[Pair]的元组。 *
韩曙亮
2023/03/30
3.5K0
Nacos 中配置 Map 类型,不香!
最近在使用 Nacos 过程中遇到一个场景,配置的字符串可以解析成 Map 类型使用,有一个配置如下:
jinjunzhu
2022/09/23
3.2K0
Nacos 中配置 Map 类型,不香!
【Kotlin】函数 ③ ( 匿名函数 | 匿名函数的函数类型 | 匿名函数的隐式返回 )
Kotlin 中对 CharSequence 类进行了扩展 , 定义了 count(predicate: (Char) -> Boolean) 扩展函数 , 接收一个 (Char) -> Boolean 类型的函数 , 用于 返回匹配给定 匿名函数 的字符数 ;
韩曙亮
2023/03/30
3.1K0
【Kotlin】函数 ③ ( 匿名函数 | 匿名函数的函数类型 | 匿名函数的隐式返回 )
Kotlin 集合 Map对象介绍
Map对象也是属于集合的一种。但是相较于集合,Map的数据是Key,Values。以键值对的形式存在。
zinyan.com
2023/07/14
5060
Kotlin 集合 Map对象介绍
JavaScript中数据类型和typeof返回的数据类型
3.typeof(Object)和typeof(Array)的结果是function,因为Object和Array本身就是内置函数。
IT人一直在路上
2019/09/18
2.1K0
JavaScript中数据类型和typeof返回的数据类型
spring mvc返回map的情况回顾
印象中平时在springmvc中比较少返回map的json数据,有点忘记了返回map时的json数据格式是怎样的,写这篇文章回顾一下,以便如果遇到返回map的json数据时能快速识别
在水一方
2022/06/14
6410
java8中使用groupingBy分组返回有序的Map
现在需要对一个有序的手机列表按照品牌进行分组,那么我们使用java8中的groupingBy的时候默认返回的是无序的Map,如果想输出有序的Map,需要使用三参数的groupingBy,指定返回有序的LinkedHashMap。
翎野君
2023/05/12
1.2K0
java8中使用groupingBy分组返回有序的Map
【Kotlin】函数 ⑧ ( 函数引用 作为函数参数 | ::函数名 | 函数类型 作为函数返回值类型 )
函数引用 可以将 具名函数 转为 函数的参数值 , 只要可以使用 Lambda 表达式 参数的地方 , 就可以使用 函数引用 进行替代 ;
韩曙亮
2023/03/30
2.9K0
【Kotlin】函数 ⑧ ( 函数引用 作为函数参数 | ::函数名 | 函数类型 作为函数返回值类型 )
java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key
1、其实前面的Map相当于Map,这个是指装入的键是对象类型,装入的值是对象类型。后面的Map只是说明Map装入的是键值对。
全栈程序员站长
2022/09/15
1.6K0
【Kotlin】Kotlin 与 Java 互操作 ③ ( Kotlin 中处理 Java 异常 | Java 中处理 Kotlin 异常 | @Throws 注解处理异常 | 函数类型互相操作 )
在 Java 函数中 抛出 异常 , 如果 在 Java 中调用该 抛出异常 的函数 , 则 必须处理该异常 , 否则编译时就会报
韩曙亮
2023/03/30
1.2K0
【Kotlin】Kotlin 与 Java 互操作 ③ ( Kotlin 中处理 Java 异常 | Java 中处理 Kotlin 异常 | @Throws 注解处理异常 | 函数类型互相操作 )

相似问题

Kotlin -在map中成功存储错误类型的泛型函数

20

Kotlin中的密封类,不兼容类型错误无法返回父类型

123

kotlin中的javaClass返回意外类型

14

kotlin有返回迭代器的map函数吗?

122

错误Kotlin类型推断失败预期类型不匹配Map<MessageDestination,List<MessageSender>>被期望

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文