[英]How to improve this ruby code more idiomatic?
由於下面的代碼看起來很老舊又丑陋。 但是在以這種方式玩耍之后才起作用。
def duplicated? url
found = false
current_user.bookmarks.each do |bookmark|
if bookmark.url.eql? url
found = true
end
end
found
end
我消除了找到的本地var和類似的if語句
def duplicated? url
current_user.bookmarks.each do |bookmark|
bookmark.url.eql? url
end
end
並且它返回錯誤的預期結果。
知道如何改進嗎? 謝謝
我認為您需要Enumerable#any? 這里。 應該首選map / include對,因為它不會創建臨時數組,並且會在找到的第一個元素上早返回。
def duplicated? url
current_user.bookmarks.any?{|b| b.url.eql? url }
end
def duplicated?(url)
current_user.bookmarks.map{|bm| bm.url}.include?(url)
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.