检查人偶模板中的变量是否为undef的正确方法是什么?

在 list 中,变量定义如下

$myvar = undef

如何在模板中检查?

看了以下两个变种
<% if @myvar -%>
<% end -%>


<% if not @myvar.nil? and @myvar -%>
<% end -%>

在我的情况下,它们似乎都适用,但是我想知道在某些情况下第一种方法是否会失败?

最佳答案

Puppet文档(在编写此答案时)对其进行了很好的解释:https://puppet.com/docs/puppet/latest/lang_template_erb.html#concept-5365

由于undeffalse不同,因此仅使用if并不是检查它的好方法。同样,当定义了变量但其值为falsenil时,也无法使用简单的if进行检查。

这就是为什么要使用scope.lookupvar(‘variable’)并检查:undef:undefined(或nil)的返回值以了解是否将其设置为undef或根本不设置的原因。

关于erb - 检查 puppet 模板中的变量是否为undef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17096934/

10-15 04:15