假设我有一个带有各种if / else部分的DXL宏,这样特定的字符串只能在某些条件下创建,而不是在其他时间创建。在尝试使用所述字符串之前,如何测试存在?我正在寻找相当于
的东西if (exist string foo) {
do_something
} else {
do_some_other_thing
}
我可以通过初始化string foo = "notset"
并测试以查看值是否已更改来克服变通方法,但是如果不需要则更喜欢不需要创建字符串变量的东西。
请注意,这是一个本地字符串,而不是属性中找到(或找不到)的内容。
答案 0 :(得分:0)
你试过if (null string_variable) {
吗?如果声明了字符串但没有给出值,则会评估为true
,因此它可能不是您想要的。如果字符串还没有被声明,它也可能会给你一个执行错误。
答案 1 :(得分:0)
请注意,DXL具有范围。像这样的代码不起作用:
if (cond) {
string s = "Hello";
} else {
// something different
}
if (s == ...) print "..." // parse time error, s not defined
您需要使用以下内容:
string s = null;
if (cond1) {
s = "Hallo";
} else {
// something different
}
if (!null s) print "...";
我希望你不是在讨论检查DXL代码中是否声明了变量。这是不可能的,因为在执行任何DXL之前,未声明的变量将产生解析时间错误(自动关闭自动解码)。你永远不应该依赖autodeclare。