1

我想要一种优雅的方式来仅在满足某些条件时才执行函数。我知道的两个选项是 if 条件和三级运算符。

如果

if(headerExists($listview) === false)
        addHeader($listview, template);

第三

    headerExists($listview) ? null : addHeader($listview);

对我来说,当您将函数视为一个整体时,if 会使逻辑更难理解。第三个函数看起来很聪明,但你在任何地方都看不到它,并且必须声明 null 是显式浪费空间。

4

1 回答 1

3

第三个选项是(ab)使用逻辑运算符短路行为

!headerExists($listview) && addHeader($listview, template);
// or
headerExists($listview) || addHeader($listview, template);

然而,这只是一种缩小技术(它甚至不会使代码更短)。出于可读性的原因使用 if 语句,如果你想在一行中不使用块:

if (!headerExists($listview)) addHeader($listview, template);
于 2013-09-12T14:43:38.057 回答