3

各メソッドと変数が1回だけ使用される場合、どちらがより正しい規則ですか?

必要な数の変数を作成します。

var x = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, x);

1行でコードを構成します。

var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());
4

2 に答える 2

3

後者は、理にかなった範囲で。しかし、これは主に単純なケースではスタイルの問題です。

つまり、10個の引数を取る関数呼び出しがあり、それらの各引数が大きな関数呼び出し自体からのものである場合は、これを行わないでください。後で誰がコードベースを取得するかを考えてください。

「このコード行は、より少ないローカル変数を使用して読み取り可能ですか?それとも、行が何をしているのかをよりよく説明するために、コードを分割する必要がありますか?」あなたが自分自身に尋ねるべき質問です。そしてこの場合、後者は完全に読み取り可能です。


実際、最初の例は、ローカル変数名が役に立たないため、読みにくくなっていると思いますx。代わりにそれがより良い名前が付けられた場合、それはより実行可能なオプションかもしれません。

var unreadCount = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, unreadCount);

これは優れていますが、この非常に単純なケースではまだかなり不要です。

于 2012-01-19T23:54:35.450 に答える
1

それはトレードオフです。

最初の例は、読みやすく、デバッグしやすいものです。エラーが発生する可能性のある2行があります。1行に呼び出される関数は1つだけなので、デバッグにはこれが適しています。

2番目の例は「ワンライナー」と呼ばれ、その行でエラーを引き起こす可能性のあるものが複数あるため、デバッグが難しい場合がありますが、使用するメモリは少なくなります。おそらく取るに足らない量です。

この例では、

1. var unread = GmailApp.getInboxUnreadCount();
2. var email = GmailApp.getInboxThreads (0, unread);

2行目でエラーが発生したとします。getInboxThreadsがエラーをスローしていることがわかります。

1. var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());

ここで、1行目でエラーが発生したとします。両方の方法を確認する必要があります。

于 2012-01-19T23:59:53.993 に答える