ColdFusion cfswitch
ColdFusion cfswitch
ColdFusion 的 cfswitch - cfcase 可以在 JavaScript 中做这样的事情吗?
switch (true) {
case (myNuber_1 < myNumber_2):
// do something
break;
case (myNuber_1 === myNumber_2):
// do something else
break;
}```
您可以在 CF11+ 中使用闭包。
<cfscript>
function doSomething(required numeric myNum) {
function thisAction(required numeric myNum) {
if( myNum <= 10 ){
//do whatever
return "Less or equal to 10";
}
else if( myNum > 10 ){
//do whatever else
return "More than 10";
}
};
return thisAction(myNum);
}
writeOutput(doSomething(11));
</cfscript>
根据文档,case 值不能是复数。 "The value or values must be simple constants or constant expressions, not variables." (https://cfdocs.org/cfcase) 您提出的复杂 switch case 语句需要使用复杂的 case 值,因此 cfml case 语句不支持您想要的方法。
如果您想知道 "Constant Expression" 是什么样子,我提供了一个示例:
<cfscript>
fruit = true;
switch(fruit) {
case ("e" EQ "e"):
writeOutput("I like fruit!");
break;
case ("e" EQ "f"):
writeOutput("I don't like fruit!");
break;
default:
writeOutput("Fruit, what fruit?");
break;
}
</cfscript>
但是不要有什么大的想法,因为你不能有一个包含变量的 "Constant Expression",也不能有两个计算结果相同的表达式(true 和 true 和很快)。在此示例中,第一种情况的计算结果为 "true",第二种情况的计算结果为 "false",默认情况下会拾取其他所有内容。如果它们都评估为真,它将失败。如果表达式的任何部分包含变量,它将引发错误。
已编辑以添加示例。
ColdFusion 的 cfswitch - cfcase 可以在 JavaScript 中做这样的事情吗?
switch (true) {
case (myNuber_1 < myNumber_2):
// do something
break;
case (myNuber_1 === myNumber_2):
// do something else
break;
}```
您可以在 CF11+ 中使用闭包。
<cfscript>
function doSomething(required numeric myNum) {
function thisAction(required numeric myNum) {
if( myNum <= 10 ){
//do whatever
return "Less or equal to 10";
}
else if( myNum > 10 ){
//do whatever else
return "More than 10";
}
};
return thisAction(myNum);
}
writeOutput(doSomething(11));
</cfscript>
根据文档,case 值不能是复数。 "The value or values must be simple constants or constant expressions, not variables." (https://cfdocs.org/cfcase) 您提出的复杂 switch case 语句需要使用复杂的 case 值,因此 cfml case 语句不支持您想要的方法。
如果您想知道 "Constant Expression" 是什么样子,我提供了一个示例:
<cfscript>
fruit = true;
switch(fruit) {
case ("e" EQ "e"):
writeOutput("I like fruit!");
break;
case ("e" EQ "f"):
writeOutput("I don't like fruit!");
break;
default:
writeOutput("Fruit, what fruit?");
break;
}
</cfscript>
但是不要有什么大的想法,因为你不能有一个包含变量的 "Constant Expression",也不能有两个计算结果相同的表达式(true 和 true 和很快)。在此示例中,第一种情况的计算结果为 "true",第二种情况的计算结果为 "false",默认情况下会拾取其他所有内容。如果它们都评估为真,它将失败。如果表达式的任何部分包含变量,它将引发错误。
已编辑以添加示例。