3

数行の長さのステートメントがあるとしましょう:

NSString *urlString = @"http://www.example.com";
NSURL *url = [NSURL urlWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

このように1行にまとめるメリットはありますか?

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL urlWithString:@"http://www.example.com"]];
4

1 に答える 1

4

1 行バージョンの利点は、一時的な中間変数を作成する必要がないことです。これは、これらの中間変数を他に使用しない場合に特に役立ちます。場合によっては、ワンライナーを使用した方がきれいに見えますが、他の状況では不格好に見えることがあります. 従うべき厳格なルールはありません。それは完全にあなた自身の美学次第です。個人的には、あなたのシナリオでは 1 行のバージョンを選択しますが、同意しない人もいるでしょう。

ワンライナーを避けることがわかっているのは、イニシャライザ メソッドが複数の引数を取る場合です。簡単な例:

id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5] supportingThing:[SupportingThing supportingThingWithString:@"Tada!"] error:NULL];

一部の人々は、次のような東ポーランドのクリスマス ツリー表記法を使用することを好みます。

id someObject = [MyClass myClassWithThing:[Thing thingWithX:5 andY:5]
                          supportingThing:[SupportingThing supportingThingWithString:@"Tada!"]
                                    error:NULL];

ここでも、従うべきルールはありません。Objective-C にはクラスとメソッドの命名規則がありますが、ネストされたメッセージ送信の規則にはまだ遭遇していません。

何よりもまず、コードの可読性と保守性。

于 2013-01-02T03:15:52.577 に答える