如何将Java赋值表达式转换为Kotlin

如何将Java赋值表达式转换为Kotlin,第1张

如何将Java赋值表达式转换为Kotlin

正如@AndroidEx正确指出的那样,与Java不同,分配不是Kotlin中的表达式。原因是通常不建议带有副作用的表达。见这个讨论上类似的话题。

一种解决方案是拆分表达式并将赋值移出条件块:

a = bif (a != c) { ... }

另一个是使用stdlib中的函数,例如

let
,以接收者作为参数执行lambda并返回lambda结果。
apply
run
具有相似的语义。

if (b.let { a = it; it != c }) { ... }

__

if (run { a = b; b != c }) { ... }

感谢inline,这将与从lambda提取的纯代码一样有效。


您的示例

InputStream
如下所示

while (input.read(bytes).let { tmp = it; it != -1 }) { ... }

另外,考虑从中

readBytes
读取a的函数。
ByteArray``InputStream



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5130599.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存