如何使这个ruby代码更加地道?
因为下面的代码看起来非常过时和丑陋。但在玩过之后,这种方式只会起作用如何使这个ruby代码更加地道?,ruby,Ruby,因为下面的代码看起来非常过时和丑陋。但在玩过之后,这种方式只会起作用 def duplicated? url found = false current_user.bookmarks.each do |bookmark| if bookmark.url.eql? url found = true end end found end 我删除了找到的本地变量和if语句,如下所示 def duplicated? url current_user.boo
def duplicated? url
found = false
current_user.bookmarks.each do |bookmark|
if bookmark.url.eql? url
found = true
end
end
found
end
我删除了找到的本地变量和if语句,如下所示
def duplicated? url
current_user.bookmarks.each do |bookmark|
bookmark.url.eql? url
end
end
它返回错误的预期结果
你知道如何改进吗?谢谢我想你需要这里。最好是映射/包含对,因为它不创建临时数组,并且在找到第一个元素时会提前返回
def duplicated? url
current_user.bookmarks.any?{|b| b.url.eql? url }
end
我想你需要这里。最好是映射/包含对,因为它不创建临时数组,并且在找到第一个元素时会提前返回
def duplicated? url
current_user.bookmarks.any?{|b| b.url.eql? url }
end
试试看,你为什么贴这个?这是吉恩·路易斯·乔丹诺的答案,我在他没有绘制地图的时候贴了这张照片,当时他的答案是不正确的。此外,我明确地映射,这是更快的,因为映射&::。。。导致演员阵容很快就会成为问题。尽管我怀疑这会很快成为问题。我在实践中从未遇到过这个问题。我从来没有遇到过to_proc的任何问题,对我来说,代码可读性比性能更重要。否则,为什么选择ruby?。所以我想说这纯粹是品味的问题。@Jean-LouisGiordano的确如此,但知道有一个选择还是很好的。你为什么发布这个?这是吉恩·路易斯·乔丹诺的答案,我在他没有绘制地图的时候贴了这张照片,当时他的答案是不正确的。此外,我明确地映射,这是更快的,因为映射&::。。。导致演员阵容很快就会成为问题。尽管我怀疑这会很快成为问题。我在实践中从未遇到过这个问题。我从来没有遇到过to_proc的任何问题,对我来说,代码可读性比性能更重要。否则,为什么选择ruby?。“所以我想说这纯粹是一个品味的问题。”吉恩·路易斯基奥尔达诺说得对,那么知道有选择也是件好事。这很公平。我错过了书签不是url的部分,所以首先想到的是包含。I+1:我不相信你的答案,很公平。我错过了书签不是url的部分,所以首先想到的是包含。I+1:我怀疑你的答案。