题
有没有办法做到三元运营速度? 这是我想做什么:
#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))
代替矮胖的if-else
#if ($args.get(0) == "")
#set ($name = "default")
#else
#set ($name = $args.get(0))
#end
任何想法?
解决方案
从经验和读取 VTL参考没有办法去做这个。如果你有很多任务的这样也许你可以看一下定义自己的Velocimacro,以尽量避免重复的if else。
例如,如果宏只打印一个字符串,你可以执行以下操作:
#set ($name = "#condOpt($args.get(0), "default")")
周围的宏调用双引号是重要的,因为这意味着#SET的RHS被解析。
其他提示
我落得这样做就像你说的,马克:
#macro(condOp $check, $default)
#if ($check == "")
$default
#else
$check
#end
#end
然后,我可以调用它像这样:
#set ($name = "#condOp($args.get(0), 'default')")
不隶属于 StackOverflow