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

有{| x | x}ruby的速记?

发布时间:2020-12-17 02:40:14 所属栏目:百科 来源:网络整理
导读:我经常使用.group_by {| x | x}和.find {| x | X } 后者是找到数组中的第一项是真的. 目前我只是使用.compact.first,但我觉得必须有一种优雅的方式来使用find,比如find(:to_bool)或.find(true)我错过了. 使用.find(:nil?)可以工作,但却与我想要的相反,我
我经常使用.group_by {| x | x}和.find {| x | X }

后者是找到数组中的第一项是真的.
目前我只是使用.compact.first,但我觉得必须有一种优雅的方式来使用find,比如find(&:to_bool)或.find(true)我错过了.
使用.find(&:nil?)可以工作,但却与我想要的相反,我找不到与#find或#detect相反的方法,或像#true这样的方法?

那么有更优雅的方式来写.find {| x | X }?如果没有,我会坚持使用.compact.first
(我知道compact不会删除false,但这对我来说不是问题,也请避免使用rails方法)

编辑:对于我的确切情况,它仅用于字符串和nils的数组,例如
[nil,“x”,nil,“y”,nil] => “X”

解决方法

如果您不关心返回的内容,您有时可以使用哈希方法.

但是,您要求的功能尚未在Ruby中提供.它存在于Ruby路线图中:

https://bugs.ruby-lang.org/issues/6373

预计在2035-12-25之前实施,你能等吗?

话虽如此,group_by {| x | x}输入了多少?

编辑:

正如Stefan指出的那样,自从引入Object#本身以来,我对Ruby 2.2及更高版本的回答现在更长.

(编辑:李大同)

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

    推荐文章
      热点阅读