3

如果每个方法和变量只能使用一次,哪种约定更正确?

根据需要创建尽可能多的变量:

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

在一行中编写代码:

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. 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 回答