我终于可以开始用cfscript编写东西了,所以我从编写一些所需的格式化功能开始。这是一个例子:
Function FormatBoolean(MyBool, Format) {
Switch(Format){
Case "YES/NO":{
If (MyBool eq 1)
Return "YES";
Else
Return "NO";
Break;
}
Default:{
If (MyBool eq 1)
Return "Yes";
Else
Return "";
Break;
}
}
}
我想做的是使Format为可选参数。如果不包括该参数,则该函数当前仍将运行,但找不到格式,并且似乎cfparam尚未转换为cfscript。
我是否只需要检查是否定义了Format并为其赋值?还是有更好的方法来做到这一点?
谢谢
最佳答案
就我个人而言,我更喜欢为此类参数设置默认值。我也重构了一些功能...但是没有经过测试:)
function FormatBoolean(required any MyBool, string Format = "") {
switch(arguments.Format) {
case "YES/NO":
return YesNoFormat(arguments.MyBool EQ 1);
default:
return (arguments.MyBool eq 1) ? "Yes" : "";
}
}
请注意,
(arguments.MyBool EQ 1)
可以替换为(arguments.MyBool)
,因此它涵盖了所有 bool 值。您可能有兴趣提高它的可靠性,类似于(isValid("boolean", arguments.MyBool) AND arguments.MyBool)
这样的代码-应该可以检查所有值。
关于coldfusion - 您可以通过cfscript在函数中执行可选参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798356/