[英]Avoiding non symbolic constants in Qt
我参与的代码审查中经常出现的一件事是在代码中内联的“魔术数字”是一件坏事。
首选是将符号分配到某处。
现在,我目前正在使用的QT SDK中。 类成员QButtonGroup.checkedId()
将返回-1
作为魔术数字,以表示所选的组中没有单选按钮。
如果我写这样的话
if ( buttongroup->checkedId() == -1 )
{
//yadda yadda
}
它会出现在代码审查中。
虽然可以定义一个const static int
符号来给我-1
,但是我更愿意在Qt
名称空间中使用一些已定义相关常量的东西。
是否已经定义了这样的符号?
代码审查与您的代码有关,而不是与第三方库的代码有关,因此您不能也不应处理它。 Qt没有任何可比较的命名实体,因此您必须将结果代码与-1
比较。 但是,它有一个好的方面: -1
是一个广为人知的幻数,因此不会有任何误解-它在许多不同的语言和库中使用。 无论它多么糟糕,它都在这里,我们必须忍受它。
没有预定义这样的符号; 您必须自己定义它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.