العامل الشرطي في السرعة
-
12-09-2019 - |
سؤال
هل هناك طريقة للقيام بالعوامل الثلاثية في السرعة؟وهذا ما أود أن أفعله:
#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))
بدلاً من مكتنزة إذا كان آخر
#if ($args.get(0) == "")
#set ($name = "default")
#else
#set ($name = $args.get(0))
#end
أيه أفكار؟
المحلول
من تجربة وقراءة مرجع VTL لا توجد طريقة لانجاز ذلك.إذا كان لديك الكثير من المهام مثل هذه، فربما يمكنك النظر في تعريف السرعة القصوى الخاصة بك لمحاولة تجنب تكرار ما إذا كان هناك شيء آخر.
على سبيل المثال، إذا كان الماكرو يطبع سلسلة واحدة فقط، فيمكنك القيام بما يلي:
#set ($name = "#condOpt($args.get(0), "default")")
تعتبر علامات الاقتباس المزدوجة حول استدعاء الماكرو مهمة لأن ذلك يعني أنه تم تحليل RHS الخاص بـ #set.
نصائح أخرى
انتهى بي الأمر كما قلت، مارك:
#macro(condOp $check, $default)
#if ($check == "")
$default
#else
$check
#end
#end
وبعد ذلك يمكنني أن أسميها هكذا:
#set ($name = "#condOp($args.get(0), 'default')")
لا تنتمي إلى StackOverflow