在Python中,使用几个候选人的第一个“真实”值可以写成:
result = a or b or c
...在处理函数调用的结果时,它避免了重复或变量赋值的任何需要:
result = get-candidate() or get-default()
XQuery中提供了一个简洁,高效,可读的等价物吗?
我能想出的最好的结果(不依赖于引擎来优化对get-candidate()
的多次调用,直到一次,如果它执行外部HTTP或SQL事务,则可能根本不可能)类似于以下内容:
let $a := get-candidate()
return if($a) then $a else get-default()
...特别是如果重复多次,那就不是很漂亮了。
什么是最简洁,最易读的方法?
答案 0 :(得分:3)
如果您的候选人要么是单个项目,要么是空序列,您可以使用以下表示法:
(get-candidate(), get-default())[1]
否则,你可能不得不坚持使用冗长的表示法。