You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中根据布尔值反转整数符号的简洁写法

Kotlin中简化if (invert) -x else x的写法

当然有更简洁的写法,这里列举几种常用的:

  • 利用布尔转整数运算:
    由于Kotlin中Boolean可以通过toInt()方法转为整数(true对应1,false对应0),可以通过数学运算直接计算结果:

    x * (1 - 2 * invert.toInt())
    

    原理:当invert为true时,1-2*1 = -1,结果为-x;当invert为false时,1-2*0=1,结果为x。

  • 使用when表达式简化:
    when表达式可以写成更紧凑的单行形式:

    when(invert) { true -> -x; else -> x }
    

    这种写法和原if表达式逻辑完全一致,在部分场景下可读性更直观。

  • 利用takeIf结合 Elvis 运算符:
    写法更偏向函数式风格,逻辑和原表达式一致:

    -x.takeIf { invert } ?: x
    

    逻辑是:如果invert为true,则取-x;否则取x。

不过要说明的是,原有的if (invert) -x else x本身已经非常简洁易读,在大多数业务场景下都是最优选择。如果追求极致简洁,可以根据团队代码风格选择上面的方式。

内容的提问来源于stack exchange,提问作者user2452723

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:45:31