问题标签 [magic-numbers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
270 浏览

sql - 您可以在 Access 2007 中使用幻数吗?

如何将数字存储在 Access 列中,然后将一些有意义的字符串与每个值相关联?

因为当我可以一次性定义每个值的含义并将这些含义显示在数据表视图中时,我不想看到原始数字,例如:

0 投票
6 回答
330 浏览

c# - c# switch语句问题

我会切入正题。我有两个关于 switch 的简单问题,但我无法弄清楚。

第一的:

在 c# switch 语句中,case 语句是否必须是连续的(带整数)?

例如:

或者是否可以执行以下操作:

我知道通常 if-else 语句用于类似的事情,但我只是想知道它是否可能。

此外,在案例陈述中使用实际数字是否被认为是幻数?或者更好的做法是声明常量以在 case 语句中使用?

谢谢!

编辑:

感谢大家的回复!我很感激。

0 投票
2 回答
607 浏览

language-agnostic - 在处理标点符号时使用魔术字符串或常量?

我们对包含任意标点符号的任意字符串进行了大量的词法处理。对于是使用魔术字符/字符串还是符号常量,我存在分歧。

尽管大多数示例都是 Java,但这些示例应被视为与语言无关。

标点符号具有语义作用并应被标识为常量的明显示例:

File.separator不是"/""\\";// 很简单,因为它依赖于操作系统

我写XML_PREFIX_SEPARATOR = ":"

但是,假设我需要""用空字符串 ` 替换所有示例。我可以写:

或者

(我已将所有常见的标点符号定义为 S_FOO(字符串)和 C_FOO(字符))

支持魔术字符串/字符:

  1. 它更短
  2. 阅读是很自然的(有时)
  3. 命名常量可能不熟悉(C_APOSvs '\''

支持常数

  1. 更难打错字(例如"''" + '"'对比S_APOS+S_APOS + C_QUOT
  2. 它消除了转义问题 正则表达式应该是"\\s+"or "\s+"or"\\\\s+"吗?
  3. 很容易在代码中搜索标点符号

(这是有限制的——即使正则表达式语法是所有编程中认知功能障碍最严重的部分之一,我也不会以这种方式编写正则表达式。我认为我们需要更好的语法。)

0 投票
2 回答
1799 浏览

java - 嵌入小程序在我的网站上不起作用

我正在尝试编写一个小程序并将其放入我的网站。我记得很久以前在 1.4 是最新版本时使用 Borland 这样做。它当然使用了小程序标签(我目前正在使用)并且没有问题。但无论如何,我把类文件放在 httpdocs/ 自己的目录下,然后在网页中使用这段代码:

<applet code="wsavatar/WSAvatar" width="425" height="150> Your browser does not support the applet tag. </applet>

当我尝试加载页面时,会发生这种情况:

Java Plug-in 1.6.0_17 Using JRE version 1.6.0_17-b04 Java HotSpot(TM) Client VM

我已经尝试制作一个快速的本地 html 文件来使用相同的小程序代码加载小程序并且它有效。我在网上环顾四周,听说过与此错误有关的各种事情,但我发现似乎没有任何东西可以缓解它。有任何想法吗?

0 投票
2 回答
136 浏览

c++ - 是否应该重构包含幻数的屏幕尺寸常数?

我的代码中有一些特定的地方,我使用特定的像素尺寸将某些东西传送到屏幕上。显然,这些被放置在命名良好的常量中,但我担心它仍然有点模糊。

示例:这是在一个小函数的本地范围内,所以我希望很明显常量的名称适用于方法名称所指的内容。

屏幕上的位置是专门为那个位置计算的。我几乎觉得我应该做一些常数,SCREEN_BOTTOM_RIGHT这样我就可以像const int X_COORD = SCREEN_BOTTOM_RIGHT - SOME_OTHER_NAME.

上面的代码是不是太模棱两可了?或者作为开发人员,您会在屏幕上看到它并说,好吧,那就是 (430, 458)。知道了。

0 投票
3 回答
35333 浏览

java - 如何从 byte[] 中提取 MimeType

我有一个可用于上传文件的网页。
现在我需要检查文件类型是否正确(zip、jpg、pdf、...)。

我可以使用请求附带的 mimeType,但我不信任用户,假设我想确保没有人能够上传以 .jpg 重命名的 .gif 文件
我认为在这种情况下我应该检查幻数
是我发现的一个 java 库,它似乎可以实现我需要的“从幻数中提取 mimetype”。
这是一个正确的解决方案还是你有什么建议?

更新: 我找到了mime-util 项目,它看起来非常好而且是最新的!(也许比 Java Mime Magic Library 更好?)
这是一个实用项目列表,可以帮助您提取 mime 类型

0 投票
8 回答
288 浏览

magic-numbers - 为 0 和 1 定义常数

我想知道其他人是否觉得做这样的事情是多余的......

而不仅仅是做

您是否发现第一个示例有助于提高可读性?争论归结为使用幻数,虽然 0 和 1 被认为是规则的“例外”,但我一直认为这些例外仅适用于初始化变量或索引访问。当数字有意义时,它应该有一个变量附加到它的含义上。

我想知道这个假设是否有效,或者给 0 一个命名常量是否只是多余的。

0 投票
3 回答
6364 浏览

iphone - iPhone JPG 图像有非标准的魔术字节 ff d8 ff e1?

在接受上传的图像之前,我的网络应用程序会根据文件扩展名检查前四个字节。一位同事向我展示了他的 iPhone 中被拒绝的图像。它们具有不同的第四个字节(e1 = 225 而不是预期的 e0 = 224)。

这对 iPhone 来说很常见吗?JPG 文件中是否使用了其他可能的魔术字节字符串?

编辑:找到这个有用的列表:http ://www.garykessler.net/library/file_sigs.html

0 投票
11 回答
5092 浏览

c++ - Magic Numbers In Arrays? - C++

I'm a fairly new programmer, and I apologize if this information is easily available out there, I just haven't been able to find it yet.

Here's my question:

Is is considered magic numbers when you use a literal number to access a specific element of an array?

For example:

I ask this question because one of my professors is adamant that all literal numbers in a program are magic numbers. It would be nice for me just to access an element of an array using a real number, instead of using a named constant for each element.

Thanks!

0 投票
5 回答
252 浏览

c++ - 常量在这里真的合适吗,还是有另一种方法?- C++

我是我的第二门 OOP 课程的编程学生,该课程用 C++ 教授。我知道在代码中使用幻数通常是不好的做法,所以这是我的问题:

在我必须为这门课编写的下一个程序中,税表中有超过 120 个数字,我们需要使用它们来计算税金和其他相关信息。有这么多的数字,我是否为每个数字定义一个常数?或者还有什么我可以做的吗?