javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

可以在枚举中定义一个类常量吗?

Python 3.4引入了一个新模块Enum,该模块为该语言添加了枚举类型。 Enum的文档提供了一个示例来演示如何扩展它:

>>> class Planet(Enum):
...     MERCURY = (3.303e+23, 2.4397e6)
...     VENUS   = (4.869e+24, 6.0518e6)
...     EARTH   = (5.976e+24, 6.37814e6)
...     MARS    = (6.421e+23, 3.3972e6)
...     JUPITER = (1.9e+27,   7.1492e7)
...     SATURN  = (5.688e+26, 6.0268e7)
...     URANUS  = (8.686e+25, 2.5559e7)
...     NEPTUNE = (1.024e+26, 2.4746e7)
...     def __init__(self, mass, radius):
...         self.mass = mass       # in kilograms
...         self.radius = radius   # in meters
...     @property
...     def surface_gravity(self):
...         # universal gravitational constant  (m3 kg-1 s-2)
...         G = 6.67300E-11
...         return G * self.mass / (self.radius * self.radius)
...
>>> Planet.EARTH.value
(5.976e+24, 6378140.0)
>>> Planet.EARTH.surface_gravity
9.802652743337129

此示例还演示了Enum的问题:在surface_gravity()属性方法中,定义了一个常量G,该常量通常在类级别定义-但是尝试在Enum内这样做将只是将其添加为枚举成员之一, 因此,它是在方法内部定义的。

如果类想在其他方法中使用此常量,则也必须在其中定义它,这显然不是理想的选择。

有什么方法可以在Enum内定义类常量,或者采取一些变通办法来实现相同的效果?

trans by 2020-02-14T10:00:47Z

在PHP中获取动态选择的类常量的值

我希望能够做到这样的事情:

class ThingIDs
{
    const Something = 1;
    const AnotherThing = 2;
}

$thing = 'Something';
$id = ThingIDs::$thing;

这不起作用。 做一些等效的直接方式吗? 请注意,我坚持上课; 它在图书馆我无法重写。 我正在编写在命令行上接受参数的代码,我真的希望它采用符号名而不是id号。

trans by 2019-07-27T19:30:49Z

如何在typescript中实现类常量?

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

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

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

get MY_CONSTANT():number {return 10};

我正在使用typescript 1.8。建议?

PS:我现在正在使用打字稿2.0.3,所以我接受了大卫的回答

trans by 2019-02-23T06:43:23Z

1 共1页