gpt4 book ai didi

ruby-on-rails - ruby 'unless' 关键字

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:46 26 4
gpt4 key购买 nike

我不确定“unless”在这段代码中的作用。虽然看起来非常简单。

  def self.tips_by_categories
@categories = {}
# Build up the possible categories
Tip.all.each do |tip|
tip.categories.each do |category|
@categories[category.name] = [] unless @categories[category.name]
@categories[category.name].push(tip)
end
end
@categories
end

@categories[category.name] = []如果@categories[category.name]是任意字符串吗?

如果不是,@categories[category.name] 最终会成为什么结果(在语句执行后)?

最佳答案

带有 unless 的行等同于:

if !@categories[category.name]
@categories[category.name] = []
end

如果 @categories[category.name] 为 nil 或 false,它会将其更改为空数组 []。否则,它不会管它。

获得相同效果的更好方法是写:

@categories[category.name] ||= []

或配置您的哈希表以具有返回 [] 的默认过程。

关于ruby-on-rails - ruby 'unless' 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13411511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com