gpt4 book ai didi

language-agnostic - 什么是神奇数字,为什么它不好?

转载 作者:行者123 更新时间:2023-12-03 03:54:52 25 4
gpt4 key购买 nike

什么是魔数(Magic Number)?

为什么要避免它?

是否存在合适的情况?

最佳答案

魔数(Magic Number)是在代码中直接使用数字。

例如,如果您有(Java):

public class Foo {
public void setPassword(String password) {
// don't do this
if (password.length() > 7) {
throw new InvalidArgumentException("password");
}
}
}

这应该重构为:

public class Foo {
public static final int MAX_PASSWORD_SIZE = 7;

public void setPassword(String password) {
if (password.length() > MAX_PASSWORD_SIZE) {
throw new InvalidArgumentException("password");
}
}
}

它提高了代码的可读性并且更易于维护。想象一下我在 GUI 中设置密码字段大小的情况。如果我使用魔数(Magic Number),每当最大大小发生变化时,我都必须在两个代码位置进行更改。如果我忘记了,这将导致不一致。

JDK 中充满了诸如 IntegerCharacterMath 类中的示例。

PS:FindBugs 和 PMD 等静态分析工具会检测代码中魔数(Magic Number)的使用并提出重构建议。

关于language-agnostic - 什么是神奇数字,为什么它不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com