Ruby可选参数如何操作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

如果我定义一个像这样的Ruby函数:

def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil )

我怎么让他它只提供第一个2和最后一个参数?

ldap_get( base_dn, filter, , X)

提问于
用户回答回答于

目前这对于ruby来说是不可能的。不能将'空'属性传递。可以通过零:

ldap_get(base_dn, filter, nil, X)

但是,这会将范围设置为零,而不是LDAP :: LDAP_SCOPE_SUBTREE。

def ldap_get(base_dn, filter, scope = nil, attrs = nil)
  scope ||= LDAP::LDAP_SCOPE_SUBTREE
  ... do something ...
end

用户回答回答于

使用选项散列。

def ldap_get(base_dn, filter, options = {})
  options[:scope] ||= LDAP::LDAP_SCOPE_SUBTREE
  ...
end

ldap_get(base_dn, filter, :attrs => X)

扫码关注云+社区