RUBY-hash操作

#------------------------------------------- 试题描述 -----------------------------------------
# 试题背景:
#     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)
#**********************************************************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值