问题标签 [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.

0 投票
8 回答
414466 浏览

typescript - 如何实现类常量?

在 TypeScript 中,const关键字不能用于声明类属性。这样做会导致编译器出现“类成员不能具有 'const' 关键字”的错误。

我发现自己需要在代码中明确指出不应更改属性。如果我在声明属性后尝试为其分配新值,我希望 IDE 或编译器出错。你们是如何做到这一点的?

我目前正在使用只读属性,但我是 Typescript(和 JavaScript)的新手,想知道是否有更好的方法:

我正在使用打字稿 1.8。建议?

PS:我现在使用的是 typescript 2.0.3,所以我接受了大卫的回答

0 投票
1 回答
2027 浏览

delphi - 从 Delphi 中的类引用变量访问类常量

我正在使用 Delphi 2007 来维护一个旧项目,我在从类引用变量访问类常量时遇到问题,我总是得到父类常量而不是子类常量。

假设有一个父类、一些子类、一个类引用,最后是一个 const 数组来存储类引用以供循环使用。

看看下面的简单程序:

当它运行时,我得到:

我希望在数组循环中也能看到 'CHILD 1' 和 'CHILD 2' !

谁能解释我为什么它不适用于类参考?

0 投票
1 回答
849 浏览

c# - 文字字符串和常量之间的区别

我即将用常量替换消息中的所有文字字符串。但真的很想知道这背后是否有任何性能优化,或者只是为了遵循编码标准。在下面的示例中,我有类常量。

有什么好处

超过

0 投票
1 回答
215 浏览

php - Redefining Codeigniter slug-based constants in the model per user

I have a Content Management System, where slug-based constants for each logged-in user's appropriate directories are defined for one or all controllers within the model. I happen to stumble upon this find by experimenting with redefining constants per logged-in user.

I did not think redefining constants was possible, but I think I am not understanding how Codeigniter or PHP is able to redefine constants in this fashion. I do not receive any PHP error stating that it was unable to redefine constants, so has me to believe that the model or controller instance is unset for each controller?

Controller:

One main model (I know it's bad to do this):

From Codeigniter Docs: Dynamic Instantiation. In CodeIgniter, components are loaded and routines executed only when requested, rather than globally.

So I would like to believe that my assumption is correct in this case based on the Codeigniter Docs.

0 投票
2 回答
3015 浏览

php - 检查类是否具有使用 PHPUnit 定义的常量的正确方法

我试图找出最好的或正确的方法来检查一个类是否有一个用 PHPUnit 定义的常量。PHPUnit 文档似乎没有涵盖这一点,这让我想知道我是否通过测试来做正确的事情 - 但它是我班级的一个重要特征。

我有以下课程:

PurchaseManager.php

...并且它的测试类的一部分有这个测试:

PurchaseManagerTest.php

这个对吗?它通过了,但我只是想知道这是否准确和最佳实践。

我正在使用 PHPUnit 5.0.8。

0 投票
1 回答
46 浏览

c++ - 这个静态类字段在创建之前就被使用了?

所以,我一直在尝试静态类字段(尤其是常量类),并让自己进入......这个:

输出:

输出

显然,static const Test whatStack实际创建之前正在使用 in (?)。

之后我又进行了一次测试:

在这段代码中,我希望看到某种错误,但输出最终看起来像这样:

输出 2

我对这里发生的事情有一些假设,但我不确定它们是否正确。所以,如果他们是,请纠正我。

以下是我的假设:

基本上,静态变量是在程序的一开始创建的(并且是值初始化的)并在程序的最后(当你真正关闭你的 .exe 时)被销毁。在我的示例中,我what在类中有一个静态常量变量Stack,我认为它是在我的程序值初始化开始时创建的。这就是为什么它的data字段设置为 0,我们可以使用它的方法。但我认为这是不正确的,因为它会输出Constructing (Default CTOR)到控制台。所以我有点卡在那里......

我也无法理解为什么我的第一个示例中的注释行是非法的。他们完全打破了静态/常量类字段的哪些规则?

如果您对我的示例中发生的事情有任何想法,请解释一下。

感谢您的关注。

0 投票
1 回答
447 浏览

c# - 访问嵌套的静态常量

我试图在 WPF 中使用嵌套常量,但 XAML 似乎无法处理嵌套的静态类。

导入命名空间

以下行给出了一个错误

0 投票
5 回答
2042 浏览

python - 在 Python 中修改类常量

在 Python 中,我定义了一个类:

是否可以更改_CON实例的常量X?例如,我尝试执行以下操作

我希望_CON从 0 更改为 3 ,因此self.y = var*_CON = 2*3 = 6. 除了创建新课程之外,正确的方法是什么?


编辑

我找到了答案。我的第二个代码有效。但是,它改变的不是类_CON的实例xX而是类X本身的实例。以下代码更改_CON的是实例x而不是类X

0 投票
1 回答
3219 浏览

python - 使用类init方法的Python类常量?

我创建了一个可以在常见数据结构中进行比较和排序的类。

问题是我想为类可以采用的最大值和最小值创建两个类常量。所以我可以调用这个值只是导入 MyClass 并编写

问题是不允许调用构造函数或init方法来初始化这些常量。

在 Java 中,这将被声明为静态并且可以工作,但我不知道如何使用构造函数/init 方法在 Python 中执行类/静态常量。没有找到太多的谷歌搜索,但有一些常量的通用配方和制作属性的建议。

我不需要一种机制来避免更改常量值,因为我绝对不会更改它。

我的第一次尝试是:

第二次尝试,通过对每个常量使用一些函数:

但我想避免奇怪的函数机制只用于制作两个常量。

我更喜欢上课而不是模块,因为它对我来说感觉更自然,但我听到了任何建议或建议。谁能给我一个更好的pythonic解决方案?

谢谢

0 投票
1 回答
728 浏览

php - 从模型外部访问 Codeigniter 模型常量

我正在开发一个 Codeigniter 项目,并想开始使用常量。我知道 Codeigniter 支持全局常量,而且我已经设法在模型的范围内实现它。

在“Baz”模型的开头:

模型内部的某处:

但是,当我尝试从模型外部(从控制器或其他模型)调用它时:

即使“Baz”模型之前已正确加载了几行,它也会给我一个错误:

... 语法错误,意外的 '::' (T_PAAMAYIM_NEKUDOTAYIM) ...

我知道有一个使用全局常量的选项,但是 IMO 在它们应该只用于特定模型并且很少在它们之外的情况下,它不会跟随全局定义的变量和常量的移动。这就是为什么我想知道是否有任何其他方法可以从模型外部访问这些模型常量?谢谢