标签: class-constants

如何在typescript中实现类常量?

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

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

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

get MY_CONSTANT():number {return 10};
Run Code Online (Sandbox Code Playgroud)

我正在使用typescript 1.8.建议?

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

class-constants typescript

363
推荐指数
6
解决办法
24万
查看次数

我可以在PHP类上定义CONST吗?

我在一些类上定义了几个CONST,并希望得到它们的列表.例如:

class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法获得在Profile课堂上定义的CONST列表?据我所知,最接近的选项(get_defined_constants())不会起作用.

我真正需要的是一个常量名称列表 - 如下所示:

array('LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME')
Run Code Online (Sandbox Code Playgroud)

要么:

array('Profile::LABEL_FIRST_NAME', 
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME')
Run Code Online (Sandbox Code Playgroud)

甚至:

array('Profile::LABEL_FIRST_NAME'=>'First Name', 
    'Profile::LABEL_LAST_NAME'=>'Last Name',
    'Profile::LABEL_COMPANY_NAME'=>'Company')
Run Code Online (Sandbox Code Playgroud)

php constants class-constants

130
推荐指数
9
解决办法
6万
查看次数

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

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

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

$thing = 'Something';
$id = ThingIDs::$thing;
Run Code Online (Sandbox Code Playgroud)

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

php class-constants

108
推荐指数
4
解决办法
3万
查看次数

如何在Java中定义一类常量?

假设您需要定义一个类,它所做的就是保持常量.

public static final String SOME_CONST = "SOME_VALUE";
Run Code Online (Sandbox Code Playgroud)

这样做的首选方式是什么?

  1. 接口
  2. 抽象类
  3. 最后一堂课

我应该使用哪一个?为什么?


澄清一些答案:

枚举 - 我不会使用枚举,我不会枚举任何东西,只是收集一些与任何方式无关的常量.

接口 - 我不打算将任何类设置为实现接口的类.只想使用接口调用常量,如下所示:ISomeInterface.SOME_CONST.

java class-constants

72
推荐指数
5
解决办法
9万
查看次数

Java Constant Pool的目的是什么?

我目前正在尝试深入研究Java虚拟机的规范.我一直在网上阅读JVM内容,有一个令人困惑的抽象,我似乎无法理解:Constant Pool.这是本书的摘录:

对于它加载的每种类型,Java虚拟机必须存储常量池.常量池是类型使用的有序常量集,包括文字(字符串,整数和浮点常量)以及对类型,字段和方法的符号引用.常量池中的条目由索引引用,非常类似于数组的元素.因为它包含对类型使用的所有类型,字段和方法的符号引用,所以常量池在Java程序的动态链接中起着核心作用

关于上述内容和CP,我有几个问题:

  1. CP是否位于.class每种类型的文件中?
  2. 作者的"象征性参考"是什么意思?
  3. 什么是Constant Pool的目的,用简单的英语?

java class-constants vm-implementation

65
推荐指数
3
解决办法
3万
查看次数

是否可以在Enum中定义类常量?

Python 3.4引入了一个新模块enum,它为该语言添加了枚举类型.该文档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 …
Run Code Online (Sandbox Code Playgroud)

python enums constants class-constants python-3.x

50
推荐指数
4
解决办法
8767
查看次数

如何在Ruby中创建私有类常量

在Ruby中,如何创建私有类常量?(即在课堂内可见但不在课堂外可见的)

class Person
  SECRET='xxx' # How to make class private??

  def show_secret
    puts "Secret: #{SECRET}"
  end
end

Person.new.show_secret
puts Person::SECRET # I'd like this to fail
Run Code Online (Sandbox Code Playgroud)

ruby access-specifier class-constants

38
推荐指数
3
解决办法
1万
查看次数

php类常量可见性

我们可以设置类常量的可见性吗?
对于这个例子:

class MyClass {
    const CONST_VALUE = 'A constant value';
}
Run Code Online (Sandbox Code Playgroud)

我们可以指定吗?

public const CONST_VALUE = 'A constant value';
Run Code Online (Sandbox Code Playgroud)

要么

private const CONST_VALUE = 'A constant value';
Run Code Online (Sandbox Code Playgroud)

要么

protected const CONST_VALUE = 'A constant value';
Run Code Online (Sandbox Code Playgroud)

php class-constants

23
推荐指数
2
解决办法
8312
查看次数

我可以使用常量名称的变量来访问PHP类常量吗?

当访问类常量时,我​​看到我可以使用变量作为类名,例如$classname::CONST_VALUE.

如果我想用一个变量为恒名称,例如self::$constant.这似乎不起作用.有解决方法吗?

php class-constants

13
推荐指数
1
解决办法
4371
查看次数

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

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

假设有一个父类,一些子类,一个类引用,最后是一个const数组来存储类引用以进行循环.

看看以下简单的程序:

program TestClassConst;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type

  TParent = class
  const
    ClassConst = 'BASE CLASS';
  end;

  TChild1 = class(TParent)
  const
    ClassConst = 'CHILD 1';
  end;

  TChild2 = class(TParent)
  const
    ClassConst = 'CHILD 2';
  end;

  TParentClass = class of TParent;
  TChildClasses = array[0..1] of TParentClass;

const
  ChildClasses: TChildClasses = (TChild1, TChild2);

var
  i: integer;
  c: TParentClass;
  s: string;

begin
  try
    writeln;

    writeln('looping through class reference array');
    for i := low(ChildClasses) to high(ChildClasses) do begin
      c := …
Run Code Online (Sandbox Code Playgroud)

delphi inheritance const class-constants

8
推荐指数
1
解决办法
1221
查看次数