我早期职业生涯中读到的一个建议是“一个布尔值几乎从来都不应该是一个...
在我职业生涯早期读到的一条建议是“布尔值几乎永远不应该作为函数的参数”。我当时并不明白问题所在,但后来在一家拥有大量Lua代码库(主要由一到两个开发者编写)的公司工作时,发现了许多看起来像这样的代码行:serialize(someObject, true, false, nil, true) 那些额外的参数有什么作用?谁知道呢,不查看函数定义是不可能知道的。基本上,发生的情况是,开发者编写了一个函数(“serialize”,在这个例子中),然后后来发现某些情况下需要稍微不同的行为(可能是格式化输出之类的)。由于Lua允许在不更改调用点的情况下更改函数的参数数量(缺少的参数只是nil),他们就只是添加了一个标志作为参数。然后又添加了另一个标志。再然后又添加了另一个。我现在非常坚定地认为,你几乎永远不应该将布尔值作为函数的参数。当然有例外,但非常少。
源讨论那个布尔值可能应该换成其他东西原帖 136 条评论 · 导入时统计