问题标签 [constants]

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 投票
7 回答
1753 浏览

.net - 使用属性引用字典中键值对的最佳方法

这是一件相当琐碎的事情,但我很想听听人们对此的看法。

如果我有一个可以通过属性访问的字典,您更喜欢这些格式中的哪一种?

这可能是典型的做法。它相当有效,易于理解等。唯一的缺点是使用更长或更复杂的键可能会拼错它或仅更改一个实例或其他内容,这导致我:

这稍微复杂一些,但似乎提供了额外的安全性,并且更接近我所认为的“代码完整”解决方案。不利的一面是,当您在属性上方还有一个 /// 块和 [DefaultValue()] 块时,它开始变得有点拥挤。

那么你更喜欢哪个,为什么?有没有人有更好的想法?

0 投票
4 回答
8201 浏览

delphi - 在 Delphi 7 中,为什么我可以为 const 赋值?

我将一些 Delphi 代码从一个项目复制到另一个项目,发现它在新项目中无法编译,但在旧项目中可以。代码看起来像这样:

所以在新项目中,Delphi 抱怨“左侧不能分配给”——可以理解!但是这段代码在旧项目中编译。所以我的问题是,为什么?是否有允许重新分配 const 的编译器开关?这甚至是如何工作的?我认为 const 在编译时被它们的值替换了?

0 投票
31 回答
474110 浏览

c# - C# 中的 const 和 readonly 有什么区别?

constC#和C#有什么区别readonly

您什么时候会使用其中一种?

0 投票
6 回答
1156 浏览

c++ - 构造结构&

我很难弄清楚 const 在特定情况下的确切应用方式。这是我的代码:

基本上,我有一个名为 test 的类。它在内部使用了四个小部件,我需要它来返回这些小部件,但如果 test 被声明为 const,我希望小部件也返回 const。

有人可以向我解释为什么 main() 中的代码可以编译吗?

非常感谢你。

0 投票
28 回答
817191 浏览

java - 在 Java 中实现常量的最佳方法是什么?

我见过这样的例子:

并假设我可以有一个常量类来包装常量,将它们声明为静态最终的。我几乎不知道 Java,我想知道这是否是创建常量的最佳方式。

0 投票
6 回答
22412 浏览

c - 为什么我不能在 C 中将 'char**' 转换为 'const char* const*'?

以下代码片段(正确)在 C 中给出警告,在 C++ 中给出错误(分别使用 gcc 和 g++,使用版本 3.4.5 和 4.2.1 进行测试;MSVC 似乎并不关心):

我可以理解并接受这一点。
此问题的 C++ 解决方案是将 b 更改为 const char * const *,这不允许重新分配指针并防止您规避 const-correctness ( C++ FAQ )。

但是,在纯 C 中,更正后的版本(使用 const char * const *)仍然会发出警告,我不明白为什么。有没有办法在不使用演员表的情况下解决这个问题?

澄清:
1)为什么这会在C中产生警告?它应该是完全 const 安全的,而且 C++ 编译器似乎也能认出它。
2)在说(并让编译器强制执行)我不会修改它指向的字符的同时,接受这个 char** 作为参数的正确方法是什么?例如,如果我想写一个函数:

我想在 char** 上调用它,参数的正确类型是什么?

0 投票
9 回答
12055 浏览

perl - 有没有办法在 Perl 中使用“常量”作为哈希键?

有没有办法使用常量作为哈希键?

例如:

上面的代码将创建一个以“X”作为键而不是 1 作为键的散列。然而,我想使用常量 X 的值作为键。

0 投票
11 回答
2103 浏览

c++ - “get() const”与“getAsConst() const”

有人告诉我他们团队中的 C++ 风格差异。我对这个主题有自己的看法,但我会对每个人的利弊感兴趣

所以,如果你有一个类属性,你想通过两个 getter 公开,一个是读/写,另一个是只读的(即没有 set 方法)。至少有两种方法:

每种方法的优缺点是什么?

我对 C++ 技术/语义原因更感兴趣,但也欢迎风格原因。

请注意,它MethodB有一个主要的技术缺陷(提示:在通用代码中)。

0 投票
9 回答
5978 浏览

c++ - const 成员函数的语义是什么?

我知道该函数不允许更改对象的状态,但我想我在某处读到允许编译器假设如果使用相同的参数调用该函数,它将返回相同的值,因此可以重用缓存值(如果可用)。例如

然后编译器可以优化第二次调用,或者使用寄存器中的值或者干​​脆做b = a;

这是真的?

0 投票
31 回答
322492 浏览

c++ - 对函数参数使用“const”

你走多远const?您只是const在必要时制作函数,还是全力以赴并在任何地方使用它?例如,想象一个简单的 mutator,它接受一个布尔参数:

const真的有用吗?我个人选择广泛使用它,包括参数,但在这种情况下,我想知道它是否值得?

我还惊讶地发现,您可以const在函数声明中省略参数,但可以将其包含在函数定义中,例如:

.h 文件

.cpp 文件

是否有一个原因?这对我来说似乎有点不寻常。