布尔方法是否应该始终采用肯定形式,即使仅将它们用作否定形式也是如此?
假设我想在创建实体之前检查一个实体是否存在,我的论点是下面的第一种形式要好于第二种形式,无论该方法是否曾经以肯定形式使用过。
总而言之,我觉得if(!affirmative)
比容易阅读if(negative)
。我有一个不同意的同事,有何想法?
第一种形式:
int entity_id = 42;
if(!entity_exists(entity_id)) create_entity(entity_id);
第二种形式:
int entity_id = 42;
if(entity_not_exist(entity_id)) create_entity(entity_id);
相关:命名布尔变量:否定或不
—
蚊蚋
可能要去。老实说,我错过了
—
贝琳·洛里奇'17
!
很多次字符,导致我误解了代码,直到我再次阅读它。所以我可能会更同意您的同事。我喜欢在您检查时可以评估为真的表格。
只是想说一点,
—
julealgon
if (!exists) create()
在许多语言/框架中,这可能被视为不良做法,因为它往往不是线程安全的。通常,首选方法是调用create()
并处理特定的异常或返回码,说明该实体已存在。当然,这不是对实际问题的答案(这就是为什么仅是评论)。
if (not entity_exists(entity_id))