【问题标题】:Changing value of variable inside argument in kotlin在 kotlin 中更改参数内部变量的值
【发布时间】:2022-01-18 17:43:00
【问题描述】:

在 Java 中,您可以执行以下操作:

boolean a = true;
if(a = false) {
   //////
}

并且 a 将被设置为 false 并在此之后用作参数。但是在 kotlin 中,我找不到这样做的方法,除了:

var a = true
a = false
if(a) {

}

有没有更好的办法?

【问题讨论】:

  • IMO 的最佳方式就是将分配与if 分开,就像您所做的那样。很清楚,我相信 Kotlin 的设计目的是为了防止将赋值用作表达式。
  • 您为什么要这样做? if 的主体永远不会被执行。无论如何,这段代码非常令人困惑。 Kotlin 明确禁止在其他任何地方使用分配。

标签: kotlin parameter-passing


【解决方案1】:

您可以以稍微不同的顺序内联执行此操作 - 首先写入要分配的值 (false),然后使用 also 范围函数来分配它:

var a = true
if(false.also { a = it }) {

}

但是,我不建议您在 Java 或 Kotlin 中执行此操作,因为这不是很可读。将作业写成单独的语句并没有什么不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2013-04-02
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多