如何测试变量是否为空或未在qmake
.pro
文件中定义?我想要
如果未定义变量,则能够设置默认值。
我试过
eval("VARIABLE" = ""){
VARIABLE = test
}
eval("VARIABLE" = ""){
message(variable is empty)
}
但我仍然收到消息“变量为空”。
答案 0 :(得分:12)
我已经找不到我发现的函数isEmpty:
isEmpty(VARIABLE){
VARIABLE = test
}
isEmpty(VARIABLE ){
message(variable is empty)
}
我不明白为什么eval没有工作的想法...
答案 1 :(得分:4)
就像你自己的回答所说,isEmpty(VARIABLE)
做你想做的事:
isEmpty(VARIABLE) {
...
}
qmake语言没有等效的等号运算符(==
),但你可以比较这样的事情:
equals(VARIABLE, foo) {
...
}
您还可以使用正则表达式检查变量是否包含子字符串:
contains(VARIABLE, .*foo.*) {
...
}
eval()
无效的原因是执行其中的语句,如果语句成功则返回true。
通过这样做:
eval(VARIABLE = "") {
...
}
...您实际上将 ""
分配给VARIABLE
,将变量设为空并进入该区块。
有关测试功能的更多信息:http://qt-project.org/doc/qt-5/qmake-test-function-reference.html
答案 2 :(得分:-1)
如果test是字符串值,请尝试
eval("VARIABLE" = ""){
VARIABLE = "test"
}
如果test是另一个变量,请尝试
eval("VARIABLE" = ""){
VARIABLE = $$test
}