这个If语句可以写成一行吗? [关闭]

Posted

技术标签:

【中文标题】这个If语句可以写成一行吗? [关闭]【英文标题】:Can this If statement be written in one line? [closed] 【发布时间】:2021-08-01 19:36:23 【问题描述】:

是否有一种单行方式来执行仅使用布尔值触发一次的 if 语句?

var boolean;    
if (!boolean) 
        function doSomething();
        boolean = true;

这句话有点意思。

【问题讨论】:

为什么要写成一行? @RBarryYoung 我的好人,***.com/questions/21194934/… 代码没有任何意义,为什么会有function function doSomething(); 无效。是声明doSomething函数还是执行它? 您可能想要提供更多上下文,例如boolean 应该如何被阅读。在这个小例子中没有用。 【参考方案1】:

把它写成一行没有多大意义,因为代码很清楚你写它的方式(减去你的语法错误),但它可以完成

function test(myBool) 
  function doSomething ()  console.log('run'); 
  myBool = myBool || doSomething() || true;
  console.log(myBool);


test(false);
test(true);

或者如果 doSomething 返回一个真正的布尔值或真值

function test(myBool) 
  function doSomething ()  console.log('run'); return true; 
  myBool = myBool || doSomething();
  console.log(myBool);


test(false);
test(true);

【讨论】:

如果doSomething 返回一个像NaN 这样的虚假值,它将将该值设置为myBool 我认为 myBool = myBool || !doSomething() || true 确保它总是返回 true 而不管 doSomething 返回什么【参考方案2】:

您可以使用logical OR assignment ||= 和comma operator。

boolean ||= (doSomething(), true);

【讨论】:

以上是关于这个If语句可以写成一行吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我可以让 Visual Studio 将花括号与 if 语句(在 HTML 中)放在同一行吗?

如何将 if-then 语句写成逻辑语句? [复制]

为啥不使用嵌套的 if 语句有啥具体原因吗? [关闭]

Shell if else语句(详解版)

linux 几个控制流语句的格式例子(if语句)

编写 IF 语句 [关闭]