gpt4 book ai didi

lambda - Kotlin lambda 和类型推断

转载 作者:行者123 更新时间:2023-12-01 15:34:00 25 4
gpt4 key购买 nike

我在 Kotlin 中实现了以下枚举

enum class PlaylistAction(val playlistFilter:(Playlist) -> Boolean) {
PLAY ({ it.playListOwner.Id == "xxx" }),
SAVE({true})
}

我想用它来过滤这样的列表:

var test = playlists.filter { playlistActionType.playlistFilter}

其中 playlistActionType 的类型为 PlaylistAction播放列表是List<Playlist>

但是我收到以下错误:

Error:(122, 34) Type mismatch: inferred type is (Playlist) -> (Playlist) -> Boolean but (Playlist) -> Boolean was expected

为什么推断类型是 (Playlist) -> (Playlist) -> Boolean 而不是 (Playlist) -> Boolean?

最佳答案

通过将谓词放入 {} 中,您实际上是在创建另一个返回谓词结果的 lambda,这就是为什么您最终会得到:(Playlist) -> (Playlist ) -> bool 值 而不是 (播放列表) -> bool 值

使用普通括号应该可以解决问题:

var test = playlists.filter(playlistActionType.playlistFilter)

关于lambda - Kotlin lambda 和类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40642529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com