【问题标题】:Is there any reason to split this into three lines?有什么理由把它分成三行吗?
【发布时间】:2015-12-11 19:49:25
【问题描述】:

请原谅这个模糊的标题,但我不知道如何将这个问题变成一个简短的句子。

我写了如下方法:

- (BOOL) isValueSet {
    return self.myNumberValue.boolValue;
}

我的一位同事将其更改为:

- (BOOL) isValueSet {
    BOOL ret = YES;
    ret = self.myNumberValue.boolValue;
    return ret;
}

现在,在我看来,它们的作用完全相同。但是,我的初级程序员的眼睛习惯于查看 Java 和 JavaScript 代码,我不知道 Objective-C 编译成的程序集(?)的细微差别。 我的同事通过这样扩展此方法是否有好处?

【问题讨论】:

  • 您应该只查看汇编代码并进行比较。我对第二个版本唯一真正的抱怨是ret 被设置了两次。它可能会被优化,但这样做没有任何好处。我会将第一行更改为 BOOL ret;。不过,坦率地说,我更喜欢第一个代码示例。
  • 这三行毫无意义。两行可以使调试更容易。 BOOL ret = self.myNumberValue.boolValue; return ret;。然后可以在return这一行下断点,查看ret的值。

标签: objective-c code-size


【解决方案1】:

这样做有两个典型的原因:

  • 更短的表达式和语句;
  • 引入可以解释值的来源或用途的标识符;

我个人会说,这里没有满足上述原因。但这是一个风格问题……

顺便说一句:我个人减少了此类编辑。在大多数情况下,这是个人风格的问题,几乎在每种情况下都没有对错之分。所以没有理由更改我同事的代码。但是,许多开发人员认为这样的风格问题很重要。 (他们在互联网上讨论,是否必须将指针 * 放置在左侧空格或右侧空格或两者中。非常重要!!!!!!!!!!!!!!!) 可能他们这样做是因为他们不了解软件工程的重要问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多