Ruby动态地向哈希添加键和值
你好,我需要一些帮助 这是我想做的Ruby动态地向哈希添加键和值,ruby,hash,key,Ruby,Hash,Key,你好,我需要一些帮助 这是我想做的 检查哈希是否已经具有基于变量的键 如果键已存在,请向键添加新值 如果密钥不存在,则创建新密钥并向其添加新值 这是我得到的,它有很多问题: if @agencyList.has_key?(domain) @agencyList[domain] << match else @agencyList[domain] = match end if@agencyList.has_key?(域) @agencyList[domain]是要向其中
if @agencyList.has_key?(domain)
@agencyList[domain] << match
else
@agencyList[domain] = match
end
if@agencyList.has_key?(域)
@agencyList[domain]是要向其中添加新值的键数组的值,还是仅是要覆盖的对象
如果它们是要添加到的数组,那么这应该可以工作
if @agency_list.has_key?(domain)
@agency_list[domain] << match
else
# This way you can create the array and put the value in at the same time
@agency_list[domain] = [match]
end
是要向其中添加新值的键数组的值,还是仅要覆盖的对象
如果它们是要添加到的数组,那么这应该可以工作
if @agency_list.has_key?(domain)
@agency_list[domain] << match
else
# This way you can create the array and put the value in at the same time
@agency_list[domain] = [match]
end
假设您的哈希具有数组类型的值,并将新值添加到数组,而不是替换它。以下方法可行:
@agency_list[domain] ||= []
@agency_list[domain] << match
@agency_list[domain]| |=[]
@代理列表[domain]假设您的哈希具有数组类型的值,并向数组添加新值,而不是替换它。以下方法可行:
@agency_list[domain] ||= []
@agency_list[domain] << match
@agency_list[domain]| |=[]
@ AgCythyList[Reald]也可以考虑使用<代码> MultMAPP<代码> GEM。然后(假设您为@agencyList
使用多映射
实例),您将在所有情况下使用@agencyList[domain]=match
添加一个条目。Ruby中有一个非常强的约定,即只对变量名使用snake\u大小写。CamelCase由解析器检测,并为常量(类名和模块名)保留。使用小写开始的CAMELSE将基本上混淆每个人。也可以考虑使用<代码> MultMAPP < /代码> GEM。然后(假设您为@agencyList
使用多映射
实例),您将在所有情况下使用@agencyList[domain]=match
添加一个条目。Ruby中有一个非常强的约定,即只对变量名使用snake\u大小写。CamelCase由解析器检测,并为常量(类名和模块名)保留。使用以小写开头的camelCase基本上会让所有人感到困惑。我不想覆盖。问题是我添加的值都集中在一个元素中。我需要它们在单独的元素中。我不想覆盖它们。问题是我添加的值都集中在一个元素中。我需要它们在单独的元素中…你经常会看到书面的(@agency_list[domain]| 124;=[])@CarySwoveland是的,它更进一步…你经常会看到书面的(@agency_list[domain]| 124;=[])@CarySwoveland是的,它更进一步。