【问题标题】:Is there a better way of writing v = (v == 0 ? 1 : 0); [closed]有没有更好的写法 v = (v == 0 ? 1 : 0); [关闭]
【发布时间】:2011-10-18 04:21:46
【问题描述】:

我想在 0 和 1 之间切换一个变量。如果它是 0,我想将它设置为 1,否则如果它是 1,我想将它设置为 0。

这是一个我经常写的基本操作,我想研究一下最短、最清晰的方法。这是我迄今为止最好的:

v = (v == 0 ? 1 : 0);

你能改进一下吗?

编辑:问题是询问如何在保持清晰的同时用最少的字符编写上述语句 - 这怎么会“不是一个真正的问题”?这并不是要进行代码高尔夫练习,尽管一些有趣的答案已经从将其视为高尔夫的人们那里得到了 - 很高兴看到高尔夫以建设性和发人深省的方式被使用。

【问题讨论】:

  • 这在我看来已经很简单/清晰/简短了。
  • 诡计:v = +!v;
  • 如果“更好”也意味着“更快”:jsperf.com/v-0-1-0.
  • @Mobinga:+1。这就像它应该得到的一样简单。我看到的所有其他答案都令人困惑,其中一些改变了逻辑;引入错误。
  • @holodoc 表达您的意见的一个更好的解决方案是创建一个答案,说明您认为原件是最好的方式,并详细说明您为什么这么认为。这也允许其他人通过投票轻松支持您的答案。

标签: javascript variables coding-style toggle


【解决方案1】:
v = v == 0 ? 1 : 0;

够了!

【讨论】:

  • 更多的是意见而不是答案,你不觉得吗?
  • @Brian:“更好”实际上是关于意见。
  • 我喜欢你去掉括号的方式——这会减少几个字符!
  • @Brian:“答案”是“不,没有更好的写作方式v = (v==0 ? 1 : 0);。其他人都在寻找不同的打高尔夫球方式。并没有真正回答这个问题。这就是为什么我对这个答案投了赞成票。
猜你喜欢
  • 2020-03-06
  • 2015-04-07
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多