如果我定义一个Ruby函数,如下所示:
def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil )
我怎么能称之为只提供前两个和最后一个参数?为什么不是
ldap_get( base_dn, filter, , X)
可能的,或者如果可能的话,怎么做?
如果我定义一个Ruby函数,如下所示:
def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil )
我怎么能称之为只提供前两个和最后一个参数?为什么不是
ldap_get( base_dn, filter, , X)
可能的,或者如果可能的话,怎么做?
这在ruby上目前是不可能的.不能将"空"属性传递给方法.你能得到的最接近的成绩是零分:
ldap_get(base_dn, filter, nil, X)
但是,这将把作用域设置为nil,而不是LDAP::LDAP_scope_子树.
您可以在方法中设置默认值:
def ldap_get(base_dn, filter, scope = nil, attrs = nil)
scope ||= LDAP::LDAP_SCOPE_SUBTREE
... do something ...
end
现在,如果您像上面那样调用该方法,行为将与您预期的一样.