Objective c 关于XCode上If-Else语句的问题
正在使用此代码:Objective c 关于XCode上If-Else语句的问题,objective-c,xcode,ios,xcode4,Objective C,Xcode,Ios,Xcode4,正在使用此代码: if (foobar == 1) { method(a) } else if (foobar == 2) { method(b) } void method (foo) { //method 1foo //method 2foo //method 3foo } if (foobar == 1) { //method 1a //method 2a //method 3
if (foobar == 1)
{
method(a)
}
else if (foobar == 2)
{
method(b)
}
void method (foo)
{
//method 1foo
//method 2foo
//method 3foo
}
if (foobar == 1)
{
//method 1a
//method 2a
//method 3a
}
else if (foobar == 2)
{
//method 1b
//method 2b
//method 3b
}
使其比以下代码更快,或编译为更小的可执行文件:
if (foobar == 1)
{
method(a)
}
else if (foobar == 2)
{
method(b)
}
void method (foo)
{
//method 1foo
//method 2foo
//method 3foo
}
if (foobar == 1)
{
//method 1a
//method 2a
//method 3a
}
else if (foobar == 2)
{
//method 1b
//method 2b
//method 3b
}
或者在Xcode上编译时有任何影响
我知道代码很粗略。很抱歉
戴夫先生,谢谢你的编辑提示。假设你所问的主要区别在于在条件语句之外使用外部方法
不,不是我能想到的。然而,在任何语言中,只要有可能,将通用功能封装在一个方法中通常都是一个好主意,以保持内容的组织性和易读性。换句话说,我同意你的第一个选择 假设您所问的主要区别在于在条件语句之外使用外部方法
不,不是我能想到的。然而,在任何语言中,只要有可能,将通用功能封装在一个方法中通常都是一个好主意,以保持内容的组织性和易读性。换句话说,我同意你的第一个选择 您所描述的内容称为。内联通常会使代码更快,但在某些情况下会使代码更慢。在任何情况下,除非代码的其余部分已经高度优化,并且处于一个非常紧密的循环中,否则您不会注意到任何速度差异 您所描述的内容称为。内联通常会使代码更快,但在某些情况下会使代码更慢。在任何情况下,除非代码的其余部分已经高度优化,并且处于一个非常紧密的循环中,否则您不会注意到任何速度差异 。是的,您可以通过删除函数并将其内容复制到使用它的任何地方来避免函数调用的微小开销,但这不是一种提高程序速度的好方法。速度上的差异非常小,即使经过多次迭代,您也可能无法检测到它。你只是在乞求那些你改变了一个位置却没有改变另一个的虫子。。是的,您可以通过删除函数并将其内容复制到使用它的任何地方来避免函数调用的微小开销,但这不是一种提高程序速度的好方法。速度上的差异非常小,即使经过多次迭代,您也可能无法检测到它。你只是在乞求错误,你改变了一个地方而不是另一个地方。第二个代码示例中是否应该有赋值?定义“更好”。你的意思是“更快”,或者“更可读”,或者“将编译成更小的可执行文件”?第二个代码示例中是否有赋值?定义“更好”。你的意思是“更快”,或者“更可读”,或者“将编译成更小的可执行文件”?但是为了可读性,哪个更好。另外,感谢您提供的干式链接。出于可读性目的,第一个链接要好得多。每次重复代码时,都有可能代码并不完全相同。如果您从多个位置调用同一个函数,读者会立即知道每个位置的代码都是相同的。当然,这是有限度的,所以要运用你的判断。不要仅仅因为一对代码在应用程序中出现两到三次就创建单独的函数。例如,您通常不会只使用函数来调用+alloc,然后调用-init。另外,感谢您提供的干式链接。出于可读性目的,第一个链接要好得多。每次重复代码时,都有可能代码并不完全相同。如果您从多个位置调用同一个函数,读者会立即知道每个位置的代码都是相同的。当然,这是有限度的,所以要运用你的判断。不要仅仅因为一对代码在应用程序中出现两到三次就创建单独的函数。例如,您通常不会只使用函数调用+alloc,然后调用-init。谢谢您的链接。在任何情况下,对于代码的可读性,您会推荐哪一种?谢谢您的链接。在任何情况下,您会推荐哪种代码的可读性?