问题标签 [class-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.
java - 如何在 Java 中定义一个常量类?
假设您需要定义一个类,它所做的只是保存常量。
这样做的首选方法是什么?
- 界面
- 抽象类
- 最后一堂课
我应该使用哪一个,为什么?
澄清一些答案:
枚举- 我不会使用枚举,我不会枚举任何东西,只是收集一些彼此不相关的常量。
接口- 我不会将任何类设置为实现接口的类。只想使用接口调用常量,如下所示:ISomeInterface.SOME_CONST
.
php - 我可以在 PHP 类上定义 CONST 吗?
我在某些类上定义了几个 CONST,并希望获得它们的列表。例如:
有什么方法可以获取Profile
类上定义的 CONST 列表?据我所知,最接近的 option( get_defined_constants()
) 不会起作用。
我真正需要的是一个常量名称列表——像这样:
或者:
甚至:
php - 在php中定义常量
如何在函数内定义常量
例如。
php - 在php中获取类常量名称?
我有一个 php 类,其中包含一些指示实例状态的类常量。
当我使用这个类时,在我对它运行一些方法之后,我会做一些检查以确保状态是我所期望的。
例如,在调用一些方法后,我希望状态为MEANINGFUL_STATUS_NAME
.
但是,这给了我异常消息
当我真正想看到的是
所以我失去了常量名称的意义。我正在考虑制作一个“转换表”数组,这样我就可以获取常量值并将它们转换回它们的名称,但这似乎很麻烦。我应该如何将其翻译回来,以便我收到一条错误消息,让我更好地了解出了什么问题?
ruby - 如何在 Ruby 中创建私有类常量
在 Ruby 中如何创建一个私有类常量?(即在课堂内可见但在课堂外不可见)
php - [PHP]:在静态类定义中使用函数返回作为数组数据
由于$directories
. 请帮忙:
php - 带常量的 PHP 类变量
我在常量 (DEPLOYMENT) 的行上遇到解析错误。为什么现在允许这样做,或者我错过了什么。
解析错误:解析错误,期待 `')'' in
c# - 过分热心的字符串常量
我确信以前有人问过这个问题,但在这个例子中,我很好奇其他人在将常数分离到这种程度时能看到什么用处:
... 真的?
将这些类型的字符串常量从您的代码中分离出来真的有什么好处吗?
在可预见的应用程序生命周期内,用于 ASTERISK 的字符何时会发生变化?
c++ - 常量类成员、赋值运算符和 QList
如果我是正确的,请确认并告诉我是否有更好的解决方案:
我知道具有常量成员的对象int const width;
不能由编译器隐式创建的合成赋值运算符处理。但是 QList (我想也是 std::list )需要一个工作赋值运算符。因此,当我想使用具有常量成员和 QList 的对象时,我有三种可能性:
- 不要使用常量成员。(不是解决方案)
- 实现我自己的赋值运算符。
- 使用其他不需要赋值运算符的容器
那是对的吗?还有其他优雅的解决方案吗?
我也想知道我是否可以:
- (4) 强制编译器创建一个处理常量成员的赋值运算符!(我不明白为什么这是一个这么大的问题。为什么操作员不够聪明,无法在内部使用初始化列表?或者我错过了什么?)
- (5) 告诉QList,我永远不会在列表中使用赋值操作。
编辑:我自己从不分配此类的对象。它们仅由复制构造函数或重载构造函数创建。所以赋值运算符只有容器需要,我自己不需要。
EDIT2:这是我创建的赋值运算符。我不确定它是否正确。Cell 有一个两个参数的构造函数。这些参数使用初始化列表设置两个常量成员。但该对象还包含其他变量(非 const)成员。
EDIT3:我发现这个线程几乎有相同的问题:C++:STL 与 const 类成员的麻烦所有答案结合在一起回答了我的问题。
php - PHP:常量和按位分隔符作为方法的默认参数
我正在创建一个类方法并希望有一个包含常量的默认参数值:
但是我收到了 Parse 错误:语法错误,意外的 '|'
我可以这样做:
但是看起来不是很干净。我希望第一种方法能奏效!
有没有更好的“正确”方法来做到这一点?