javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

我可以使用字符串连接在PHP中定义类CONST吗?

我知道您可以使用字符串连接彼此创建全局常量:

define('FOO', 'foo');
define('BAR', FOO.'bar');  
echo BAR;

将打印'foobar'。

但是,使用类常量尝试执行相同操作时出现错误。

class foobar {
  const foo = 'foo';
  const foo2 = self::foo;
  const bar = self::foo.'bar';
}

foo2的定义没有问题,但是声明const bar将出错

解析错误:语法错误,意外的“。”,预期为“,”或“;”

我也尝试过使用sprintf()之类的函数,但是它不喜欢左括号,而不仅仅是字符串连接器'。'。

那么,除了像foo2这样的琐碎的设置情况之外,还有什么方法可以彼此创建类常量吗?

trans by 2020-02-22T17:49:18Z

常量值的直接数组初始化

每当您在C#中使用

new T[length]

数组项设置为默认值T。如果Enumerable.ToArray是引用类型,或者如果T是值类型,则使用默认构造函数T的结果为Enumerable.Repeat(value, length).ToArray()

在我的情况下,我想用值-1初始化Enumerable.Repeat(value, length).ToArray()数组:

var myArray = new int[100];
for (int i=0; i<myArray.Length; i++) { myArray[i] = -1; }

因此,在为阵列保留内存之后,CLR会遍历新分配的内存,并将所有条目设置为default(int)=0。之后,我的代码将所有条目设置为-1。

这使得初始化变得多余。 JIT是否检测到该错误并忽略初始化为0,如果没有,是否可以使用自定义值直接初始化内存的一部分?

使用Enumerable.Repeat(value, length).ToArray()引用C#数组初始化-具有非默认值是不可选项,因为Enumerable.ToArray会分配一个新数组,然后将值复制到该数组中。

trans by 2020-02-18T00:36:15Z

类型-在C ++中将非const强制转换为const

我知道您可以使用constconst投射到非const

但是,如果要将非2750206743010608608128投射到const,应该使用什么?

trans by 2020-02-16T14:20:05Z

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

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 Foo {
    const ERR_SOME_CONST = 6001;

    function bar() {
        $x = 6001;
        // need to get 'ERR_SOME_CONST'
    }
}

PHP有可能吗?

trans by 2020-02-03T20:28:51Z

C中的常量变量存储在哪里?

我想知道常量变量存储在哪里。 它与全局变量位于同一存储区吗? 还是在堆栈上?

trans by 2020-01-20T16:13:23Z

如何在C#中声明常量Guid?

是否可以在C#中声明常量Guid?

我了解我可以声明2705224008676676672512,但是是否有允许我编写const Guid的语法?

trans by 2020-01-16T13:33:45Z

在C ++头中定义常量变量

我正在研究的程序具有适用于所有类的许多常量。 我想制作一个头文件“ Constants.h”,并能够声明所有相关的常量。 然后在其他课程中,我只可以包括#ifndef

我使用#ifndef ... 2700753577622111111语法可以正常工作。 但是,我更喜欢使用常量const int...的形式。 我不太确定该怎么做。

trans by 2020-01-13T11:32:47Z

如果“ let”关键字用于快速定义常量/不可变变量,那么“ static”关键字有什么用?

我对在swift中使用static关键字有些困惑。 众所周知,swift引入了let关键字来声明不可变对象。 就像声明表视图单元格的ID一样,该ID在其生命周期中很可能不会发生变化。 现在在一些类似struct的声明中使用static关键字是什么:

struct classConstants
{
    static let test = "test"
    static var totalCount = 0
}

而让关键字做同样的事情。在目标C中,我们使用static声明了一些常量,例如

static NSString *cellIdentifier=@"cellId";

除此之外,让我更好奇的是将static关键字与let和var关键字一起使用。 有人可以解释一下该静态关键字在哪里使用吗? 更重要的是,我们真的需要快速静态化吗?

trans by 2020-01-05T23:52:44Z

.net-C#:如何使用枚举存储字符串常量?

可能重复:
用字符串枚举

可能在枚举中具有字符串常量,例如

      enum{name1="hmmm" name2="bdidwe"}

如果不是这样,最好的方法是什么?

我尝试了它不适用于字符串,所以现在我将所有相关的constant分类为一个类

      class operation
      {
          public const string  name1="hmmm";
          public const string  name2="bdidwe"
      }
trans by 2019-12-28T02:52:22Z

java-在Kotlin中定义log TAG常数的最佳方法是什么?

我正在Android应用程序中创建第一个Kotlin类。 通常出于记录目的,我有一个名称为TAG的常量。在Java中,我要做的是:

private static final String TAG = MyClass.class.getSimpleName();

我知道在Kotlin类中,我可以使用以下方式创建TAG

private val TAG = MyClass::class.java.simpleName

这对于使用Java和Kotlin的项目是可以的,但是如果我启动仅在Kotlin中的新项目该怎么办? 如何在其中定义TAG常数? 在我没有这种奇怪的构造class.java.simpleName的地方,还有更多的科特林方式吗?

trans by 2019-12-26T21:41:08Z

php-使用包含constan名称的简单变量访问类常量

我正在尝试访问我的一个班级中的班级常量:

const MY_CONST = "value";

如果我有一个变量,它持有这个常量的名称,如下所示:

$myVar = "MY_CONST";

我可以通过某种方式访问MY_CONST的值吗?

self::$myVar

显然不起作用,因为它用于静态属性。变量变量也不起作用。

trans by 2019-12-26T09:30:49Z

Ruby模块中的常量范围

我在mixin模块中具有恒定范围的问题。 假设我有这样的事情

module Auth

  USER_KEY = "user" unless defined? USER_KEY

  def authorize
    user_id = session[USER_KEY]
  def

end

除非已定义,否则USER_KEY常数应默认为“ user”。 现在,我可能将其混合在几个地方,但在其中一个地方,USER_KEY需要有所不同,因此我们可能会有类似的内容

class ApplicationController < ActionController::Base

  USER_KEY = "my_user"

  include Auth

  def test_auth
    authorize
  end

end

我希望在授权中使用USER_KEY时,它会是“ my_user”,因为它已经定义了,但仍然是“ user”,取自USER_KEY的模块定义。 有人知道如何获得使用USER_KEY的类版本的授权吗?

trans by 2019-12-26T03:45:14Z

如何在没有警告的情况下重新定义Ruby常量?

我正在运行一些Ruby代码,该代码每次更改日期都会对Ruby文件进行评估。 在文件中,我有常量定义,例如

Tau = 2 * Pi

并且,当然,它们使解释器每次都显示不想要的“已初始化常量”警告,因此,我希望具有以下功能:

def_if_not_defined(:Tau, 2 * Pi)
redef_without_warning(:Tau, 2 * Pi)

我可以这样写所有常量定义来避免警告:

Tau = 2 * Pi unless defined?(Tau)

但它很雅致,有点湿(不是干的)。

有没有更好的方法来def_if_not_defined? 又如何redef_without_warning

-

感谢史蒂夫的解决方案:

class Object
  def def_if_not_defined(const, value)
    mod = self.is_a?(Module) ? self : self.class
    mod.const_set(const, value) unless mod.const_defined?(const)
  end

  def redef_without_warning(const, value)
    mod = self.is_a?(Module) ? self : self.class
    mod.send(:remove_const, const) if mod.const_defined?(const)
    mod.const_set(const, value)
  end
end

A = 1
redef_without_warning :A, 2
fail 'unit test' unless A == 2
module M
  B = 10
  redef_without_warning :B, 20
end
fail 'unit test' unless M::B == 20

-

这个问题太老了。 上面的代码仅对于Ruby 1.8是必需的。 在Ruby 1.9中,P3t3rU5的答案不会产生任何警告,并且会更好。

trans by 2019-11-18T04:36:13Z

Swift:全局常量命名约定?

在Swift中,全局常量似乎应该是camelCase。

例如:

let maximumNumberOfLoginAttempts = 10

那是对的吗?

我已经习惯了C的所有大写字母,例如MAXIMUM_NUMBER_OF_LOGIN_ATTEMPTS,但是我想默认Swift约定。

trans by 2019-11-16T04:31:51Z

如何在头文件中声明静态const char *?

我想在我的.cpp文件的头文件中定义一个常量char *。 所以我尝试了这个:

private:
    static const char *SOMETHING = "sommething";

这给我带来了以下编译器错误:

错误C2864:'SomeClass :: SOMETHING':   仅静态const积分数据   成员可以在   类

我是C ++的新手。 这里发生了什么? 为什么这是非法的? 以及如何替代呢?

trans by 2019-11-04T00:03:04Z

红宝石-恼人的“警告:已初始化常量”消息的解决方案

今天,我偶然发现了一个有关Ruby常量的棘手问题。 在我们的团队中,有人创建了一个模块,该模块包含在多个模型中。 在我们的(规格)测试输出中,此结果会生成警告消息,例如:

/home/ayrton/project/lib/life_cycle.rb:5:警告:已初始化   恒定复位

解决此问题的一种方法是,像这样声明常量:

module LifeCycle

  unless (const_defined?(:RESET))
    RESET = 'reset'
  end

  #...
end

我还阅读了由Avdi Grimm撰写的博客文章,该文章提供了一种替代解决方案,我想知道您对此事有何看法。

trans by 2019-10-09T12:06:00Z

date-Java中的时间常量?

是否有一个Java包,其中包含所有令人讨厌的时间常数,例如分钟/小时/天/年的毫秒/秒/分钟? 我讨厌重复这样的事情。

trans by 2019-10-05T22:43:37Z

android-Kotlin中的常量-创建它们的推荐方法是什么?

建议如何在Kotlin中创建常量? 命名约定是什么? 我没有在文档中找到。

companion object {
    //1
    val MY_CONST = "something"

    //2
    const val MY_CONST = "something"

    //3
    val myConst = "something"
}

要么 ...?

trans by 2019-09-26T09:29:32Z

常量 - 在python中分配变量NaN而不是numpy

大多数语言都有一个NaN常量,您可以使用它来为变量赋值NaN。 python可以不使用numpy吗?

trans by 2019-09-17T01:08:20Z

1 2 3 下一页 共3页