【发布时间】:2014-05-03 09:34:05
【问题描述】:
好的,这是我的代码:
//================================================
// Constants
//================================================
const string YAML_STRING = "tag:yaml.org,2002:str";
const string YAML_INT = "tag:yaml.org,2002:int";
const string YAML_FLOAT = "tag:yaml.org,2002:float";
const string YAML_BOOL = "tag:yaml.org,2002:bool";
const string YAML_SEQ = "tag:yaml.org,2002:seq";
const string YAML_SET = "tag:yaml.org,2002:set";
const string YAML_MAP = "tag:yaml.org,2002:map";
const string YAML_OMAP = "tag:yaml.org,2002:omap";
const string YAML_PAIRS = "tag:yaml.org,2002:pairs";
//================================================
// Functions
//================================================
Value parseYAMLNode(Node n)
{
writeln(n.tag);
switch (n.tag)
{
case YAML_STRING : return new Value(n.as!(string));
case YAML_INT : return new Value(n.as!(long));
case YAML_FLOAT : return new Value(n.as!(float));
case YAML_BOOL : return new Value(n.as!(bool));
default :
}
// more code - omitted
}
一旦我决定将我的 case 字符串声明为 const(它们被重复使用,所以我认为这很实用),它会触发 Case must be a string or an integral constant 错误。
这是为什么呢?如何解决这个问题?
【问题讨论】:
标签: switch-statement constants d dmd