仅保留var语句,例如:
public static <K,V> void appendMapBtoMapA(HashMap<K,List<V>> a, HashMap<K,List<V>> b) {
for (Map.Entry<K, List<V>> bEntry : b.entrySet()) {
a.computeIfAbsent(
bEntry.getKey(),
k -> new LinkedList<>()
).addAll(bEntry.getValue());
}
}
如果foo为1,则仅执行替换操作。
var foo = 0, bar = "abc".replace("a", "x"); // want bar to equal "abc"
var foo = 1, bar = "abc".replace("a", "x"); // want bar to equal "xbc"
有一个noOp类型的函数可以代替“ replace”用于“某些noOp函数”吗?我不想修改任何原型。有没有办法使用现有方法来做到这一点?
“ abc”可以在变量中,例如:
var foo = 0, bar = "abc"[foo ? "replace" : "some noOp function"]("a", "x");
答案 0 :(得分:3)
对于字符串,可以使用toString/valueOf
方法,该方法将返回相同的字符串,并且不带参数,因此您可以传递任何所需内容而不必担心。
function bar(foo) {
return "abc"[foo ? "replace" : "toString"]("a", "x");
}
console.log(bar(true));
console.log(bar(false));
无论如何,我不建议您这样做。最好不要调用该函数,而且我也不认为它很干净。