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

有{| x | x}ruby的速记?,第1张

概述我经常使用.group_by {| x | x}和.find {| x | X } 后者是找到数组中的第一项是真的. 目前我只是使用.compact.first,但我觉得必须有一种优雅的方式来使用find,比如find(&:to_bool)或.find(true)我错过了. 使用.find(&:nil?)可以工作,但却与我想要的相反,我找不到与#find或#detect相反的方法,或像#true这 我经常使用.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及更高版本的回答现在更长.

总结

以上是内存溢出为你收集整理的有{| x | x}ruby的速记?全部内容,希望文章能够帮你解决有{| x | x}ruby的速记?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1281938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存