这是可选参数的实现。它用于提供一个API,如果您没有使用可选参数调用它,它将使用合理的(最好是默认的)值继续进行:
String.splitByCharacterType(text)
String.splitByCharacterType(text,CAMEL_CASE)
注意:我从未使用过Apache StringUtils,因此上面的示例可能有误,仅用于说明用例。
在某些语言(如C++)中,语言直接提供了语法来支持这种用例:
char*[] splitByCharacterType(char* text, bool camelCase = 0) {
// ...
}
在其他没有函数重载或可选参数的语言中,可以使用可变参数来实现相同的用例。例如,在javascript中,您可以这样做:
function splitByCharacterType (text) {
var camelCase = false;
if (arguments.length > 1 && arguments[1] == true) camelCase = true;
}
在一些语言中,你可以使用少于预期数量的参数来调用函数,并且未指定的参数将简单地赋值为null或undefined。例如,在JavaScript中,您也可以这样做:
function splitByCharacterType (text, camelCase) {
if (camelCase != undefined) {
}
else {
}
}
可选参数的概念与控制台应用程序的命令行参数基本相似。例如:
ls
上述调用生成的输出通常是您想要的,但您也可以执行以下操作:
ls -l
针对需要更多信息的情况。