Lim*_*mey 9 coldfusion coldfusion-9
我终于开始在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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想做的是使Format成为可选参数.如果你不包含参数,该函数目前仍然会运行,但它找不到格式,似乎cfparam没有被转换为cfscript.
我是否只需要检查格式是否已定义并为其赋值?或者有更好的方法吗?
谢谢
Ser*_*gii 15
我个人更喜欢将默认值设置为这种参数.另外我有点重构功能......但没有测试过:)
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" : "";
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,(arguments.MyBool EQ 1)可以替换为(arguments.MyBool),因此它涵盖所有布尔值.您可能有兴趣使其更可靠,类似这样(isValid("boolean", arguments.MyBool) AND arguments.MyBool)- 这应该允许检查任何值.