当前位置: 首页 > 知识库问答 >
问题:

一行"if"操作

廖华翰
2023-03-14

我有以下代码:

 private fun setCashPaymentContainer(isSelected: Boolean) {      
        if (isSelected) {
            dataBinding.cashPaymentCheckImageViewContainer.visibility = View.VISIBLE
        } else {
            dataBinding.cashPaymentCheckImageViewContainer.visibility = View.GONE
        }
    }

它工作正常,但我想改进它,并写为简化和可读性,如果其他块。这将是很好的,如果我能使一行如果其他声明请建议。

共有2个答案

蓝飞
2023-03-14

事实上,科特林允许这样做。

private fun setCashPaymentContainer(isSelected: Boolean) {      
    dataBinding.cashPaymentCheckImageViewContainer.visibility = when {
        isSelected -> View.VISIBLE
        else -> View.GONE
    }
}

实际上,你可以把它做得更好(依我看):

inline fun View.showIf(condition: (View) -> Boolean) {
    val shouldShow = condition(this) 

    this.visibility = when {
        shouldShow -> View.VISIBLE
        else -> View.GONE
    }
}

现在你可以做了

private fun setCashPaymentContainer(isSelected: Boolean) {      
    dataBinding.cashPaymentCheckImageViewContainer.showIf { isSelected }
}
柴嘉年
2023-03-14

可以使用if表达式:

dataBinding.cashPaymentCheckImageViewContainer.visibility = if(isSelected) View.VISIBLE else View.GONE

...但是在这种情况下,isVisible更好(信用:Pawel):

dataBinding.cashPaymentCheckImageViewContainer.isVisible = isSelected

注意:还有isInsightisGone

 类似资料:
  • 我有以下代码: 它工作得很好,但是我想改进它,把它写成简化的、可读的if else块。如果我能做一行if else语句请建议,那就好了。

  • 问题内容: 我有以下代码 我需要将to的值设置为if is ; 不做其他任何事情。所以,这是我的代码 有什么办法可以避免使它看起来更干净的部分吗?相当于 我试着用替换它是这样的:。我所得到的只是语法错误。我也不能忽略这一部分。 问题答案: 我认为这在Python中是不可能的,因为您实际上要尝试执行的操作可能会扩展为以下内容: 如果您排除,则会收到语法错误,因为我非常确定分配实际上必须返回某些内容。

  • 问题内容: 根据反if运动,最好的做法是在我们的代码中不要使用if。谁能告诉我是否有可能摆脱这段代码中的if?(切换也不是一种选择, 重点是删除条件逻辑,而不是用类似的语言构造替换ifs ) (语言:Java或C#) 问题答案: 利用策略模式。 用Java术语: 使用方法如下:

  • 本文向大家介绍在mybatis 中使用if else 进行判断的操作,包括了在mybatis 中使用if else 进行判断的操作的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 需要注意的是 使用了where标签以后,sql中不在使用where字段来限制条件 如果判断条件有多个 中间用 and 表示并列 补充:mybaits中if 多个test 和 if els

  • 我试图检查一个进程(假设它被称为some_进程)是否正在服务器上运行。如果是,则回显1,否则回显0。 这是我正在使用的命令,但它只能部分工作(更多信息见下文)。注意,我需要在一行中编写脚本。 注:某些过程中的是为了防止grep自身返回。 如果某个_进程正在运行,则会回显“1”,这很好。但是,如果某个_进程未运行,则不会产生任何回声。

  • 我已经阅读了下面的链接,但没有回答我的问题 Python是否有三元条件运算符?(问题是关于将if-else语句压缩到一行) 是否有一种更简单的方法来编写if-elif-else语句,使其适合一行<例如, 或者是一个真实的例子: 我只是觉得如果上面的例子可以用下面的方式写,它看起来会更简洁。