我正在参加中间数据结构课程,作为进入美国每个人都听说过的大学的CS MS程序的先决条件。在课堂上写的一行代码引起了我的注意:
if (a > 33 | b++ < 54) {...}
这不会在我的工作场所通过代码审查。如果您在面试中编写了这样的代码,这将是对您的重大打击。(除了附带条件的条件外,它还很聪明,但以清晰度为代价。)
实际上,我从未见过有副作用的条件,而且Googling也不会出现太多问题。下课后还有另一个学生问这个问题,所以我不是唯一认为这很奇怪的人。但是这位教授非常坚决地认为这是可以接受的代码,并且他会在工作中编写类似的代码。(他的FT工作是在您都听说过的一家公司担任首席SWE。)
我无法想象这样的代码行是可以接受的,更不用说是令人满意的了。我错了吗?这个可以吗?那么更一般的情况呢:有副作用的条件治疗呢?那些还好吗?