假设我有一个长达数行的陈述:
NSString *urlString = @"http://www.example.com";
NSURL *url = [NSURL urlWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
将它压缩到一行是否有任何好处?
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL urlWithString:@"http://www.example.com"]];
答案 0 :(得分:4)
单行版本的好处是您不必创建临时中间变量。如果您对这些中间变量没有其他用途,这将特别有用。在某些情况下,它看起来更整洁,但在其他情况下,它看起来很笨重。没有严格的规则要遵循,这完全取决于你自己的美学。就个人而言,我会为您的场景选择单行版本,但可能还有其他人不同意。
有一次,我知道我避免使用单行程序,因为初始化方法需要多个参数,因为它可能会变得混乱而难以遵循,特别是如果你深入几层。对于一个简单的例子:
id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5] supportingThing:[SupportingThing supportingThingWithString:@"Tada!"] error:NULL];
有些人更喜欢使用Eastern Polish Christmas Tree notation,这看起来像是:
id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5]
supportingThing:[SupportingThing supportingThingWithString:@"Tada!"]
error:NULL];
同样,这里没有规则可循。虽然Objective-C有关于如何命名类和方法的约定,但我还没有遇到嵌套消息发送的约定。
首先,代码的可读性和可维护性。