在 for-each 循环中进行类型转换

Lit*_*per 2 generics iterator loops kotlin

我正在重构一些代码,作为中间步骤,我想迭代列表X并将每个元素类型转换为Y. 以下作品:

val xs: List<X>
for (x in xs) {
    val y = x as Y
}
Run Code Online (Sandbox Code Playgroud)

但我想知道如何将迭代和类型转换结合起来,以便 1)我不必引入变量x,2)我可以将两行合并为一行。

我尝试过以下方法

val xs: List<X>
for ((y as Y) in xs) {
}

val xs: List<X>
for ((y in xs) as Y) {
}
Run Code Online (Sandbox Code Playgroud)

没有任何成功。是否有可能将类型转换和迭代结合起来?如何?

Cas*_*sni 5

将迭代和类型转换合并到一行中:

val xs: List<X>

xs.forEach { it as Y
    // Perform stuff on it
}
Run Code Online (Sandbox Code Playgroud)