#------------------------------------------- 试题描述 -----------------------------------------
# 试题背景:
# Hash是Ruby常用的数据结构,这里练习下Hash的常用方法的用法
#
# 试题要求:
# (1) 定义一个main方法, 接收一个参数,类型是Hash,如果不是则抛异常
# (2) 校验Hash中每个key的类型都是Symbol,校验不通过返回异常
# (3) 校验Hash中每个value的类型都是字符串,校验不通过返回异常
# (4) 删除Hash中key或value包含"a"的元素,例如:
# {:ab => "hello", :abc => "he", :hello => "abc", :world => "123"}
# 删除后的结果;{ :world => "123" }
#
# 注: 涉及抛出异常地方,异常类型与异常信息不限
#----------------------------------------------------------------------------------------------
#******************************************* 答题区 *******************************************
def main(hash_list)
if hash_list.is_a?(Hash) then
hash_list.each do |key,value| #遍历HASH中key,value值
if key.is_a?(Symbol) == false || value.instance_of?(String) == false then #遍历HASH中key、value值是否分别为Symbol、String类型
raise "=*=*=*=key或value值非Symbol或String类型=*=*=*="
end
if key.to_s.include?("a") || value.include?("a") then #判断HASH是否包含a元素
hash_list.delete(key) #删除HASH值
end
end
p hash_list
else
raise "=*=*=*=参数非HASH类型=*=*=*="
end
end
hash_list = {:ab => "hello", :abc => "he", :hello => "abc", :world => "123"}
p main(hash_list)
#**********************************************************************************************
# 试题背景:
# Hash是Ruby常用的数据结构,这里练习下Hash的常用方法的用法
#
# 试题要求:
# (1) 定义一个main方法, 接收一个参数,类型是Hash,如果不是则抛异常
# (2) 校验Hash中每个key的类型都是Symbol,校验不通过返回异常
# (3) 校验Hash中每个value的类型都是字符串,校验不通过返回异常
# (4) 删除Hash中key或value包含"a"的元素,例如:
# {:ab => "hello", :abc => "he", :hello => "abc", :world => "123"}
# 删除后的结果;{ :world => "123" }
#
# 注: 涉及抛出异常地方,异常类型与异常信息不限
#----------------------------------------------------------------------------------------------
#******************************************* 答题区 *******************************************
def main(hash_list)
if hash_list.is_a?(Hash) then
hash_list.each do |key,value| #遍历HASH中key,value值
if key.is_a?(Symbol) == false || value.instance_of?(String) == false then #遍历HASH中key、value值是否分别为Symbol、String类型
raise "=*=*=*=key或value值非Symbol或String类型=*=*=*="
end
if key.to_s.include?("a") || value.include?("a") then #判断HASH是否包含a元素
hash_list.delete(key) #删除HASH值
end
end
p hash_list
else
raise "=*=*=*=参数非HASH类型=*=*=*="
end
end
hash_list = {:ab => "hello", :abc => "he", :hello => "abc", :world => "123"}
p main(hash_list)
#**********************************************************************************************