加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 如何定义采用数组或字符串的Ruby方法?

发布时间:2020-12-16 19:14:40 所属栏目:百科 来源:网络整理
导读:我定义了一个采用数组(字符串)的方法,比如 def list(projects) puts projects.join(',')endlist(['a','b']) 但是,作为一个只用一个String元素组成的Array来调用它的简写,我希望同样的函数也能接受一个普通的String list('a') 在方法中处理这个问题的Ruby方法
我定义了一个采用数组(字符串)的方法,比如
def list(projects)
  puts projects.join(',')
end

list(['a','b'])

但是,作为一个只用一个String元素组成的Array来调用它的简写,我希望同样的函数也能接受一个普通的String

list('a')

在方法中处理这个问题的Ruby方法是什么?

解决方法

为什么不是这样的:
def list(*projects)
  projects.join(',')
end

然后你可以随意调用它

list('a')
#=> "a"
list('a','b')
#=> "a,b"
arr = %w(a b c d e f g)
list(*arr)
#=> "a,b,c,d,e,f,g"
list(arr,'h','i')
#=> "a,g,h,i"

splat(*)会自动将所有参数转换为数组,这样您就可以毫无问题地传递数组和/或字符串.它也适用于其他对象

list(1,2,'three',arr,{"test" => "hash"}) 
#=> "1,three,a,{"test"=>"hash"}"

谢谢@Stefan和@WandMaker指出Array#join可以处理嵌套的数组

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读