你如何命名一个将其他布尔值变为真的函数?

How do you name a function which turns other Boolean value to true?

我有一个模型,该模型有几个属性。 我想做的是根据其他属性将其中一个布尔属性变为真。

假设我们有一个名为 User 的模型,用户具有如下属性...

我被要求根据生日更改法定年龄属性。 (如果用户是 20 岁,则将其设为真,否则,将其设为假。)我将该函数命名为 check_legal_age,因为它会检查法定年龄列是否为真。

但是,我的一位同事告诉我,这个名字太模糊了,很难弄清楚函数是做什么的,函数的值是什么returns。

经过一番交谈,我决定将函数命名为make_legal_age_true,一个冗长但直截了当的名字。同事还建议我命名为trufy_legal_age

是否有一种常规的方法来命名这样的方法,让阅读代码的其他人清楚地了解其意图?

如果它是一个函数,最好使用问号,并将其命名为 is_legal_age?

您的同事是对的,check_legal_age 不是一个好名字,不是因为它本身含糊不清,而是因为它 具有误导性 ,因此很危险。这似乎暗示正在检查或验证对象状态,而实际上它正在被更改。

惯例是改变内部对象状态的方法应该是"bang" !方法。只需将方法命名为 legal_age! 即可获得将布尔属性设置为 true.

的意义

如果谓词方法(returns truefalse 的谓词方法)以 ? 结尾会更好。 legal_age?legal_age! 对我来说似乎 crystal 很清楚。