在Ruby中使用数组作为哈希键

自旋加速器

您好堆高机我正在调试我的第一个实现简单银行(提取,存款,转账等)的ruby应用程序。我需要向用户询问其卡号,然后将其与哈希进行比较,以获取与该卡关联的人。尽管似乎我正在将相同的数组与哈希键进行比较,但我似乎无法获得该值。

def addAccount(person,card,key,account)
        @key = "Kudzu"
        if(key === @key)
            $people[card["card_number"]] = person
            $accounts[card["card_number"]] = account
            return true
        else
            puts "Access Denied: atm.addAccount"
            return false
        end
    end



    def start_trans()
        while(true)
            STDOUT.flush
            puts "Insert Card (1234 5678 9123 4567) >> "
            temp = gets.chomp
            @card = temp.split(" ")
            puts @card 
            puts @card.class
            puts $people
            @person = $people[@card]
            if(@person)
                @account = $accounts[@card]
                get_pin()
                break
            else
                puts "Didn't catch that try again" 
            end 
        end
    end

我的输出:

Insert Card (1234 5678 9123 4567) >>
6327 6944 9964 1048
6327
6944
9964
1048
Array

{[6327, 6944, 9964, 1048]=>#<Person:0x2ae5548 @zip="12345", @cash="123", @name="r", @card={"card_number"=>[6327, 6944, 9964, 1048], "exp_month"=>11, "
exp_year"=>2018, "security_code"=>468, "zip_code"=>"12345", "pin"=>"1234"}, @account=#<Account:0x2ae5530 @person=#<Person:0x2ae5548 ...>, @atm=#<Atm:0
x2ae5500>, @name="r", @balance=nil, @accounts=nil, @key="Kudzu", @pin="1234", @card={"card_number"=>[6327, 6944, 9964, 1048], "exp_month"=>11, "exp_ye
ar"=>2018, "security_code"=>468, "zip_code"=>"12345", "pin"=>"1234"}>>}

Didn't catch that try again
Insert Card (1234 5678 9123 4567) >>

在将$ people放入可读性前后,我在此处的输出中添加了空行。

肖阿里

如果您将$people哈希定义为

$people = {["6327", "6944", "9964", "1048"] => blabla... }

您将获得以下输出puts $people

{["6327", "6944", "9964", "1048"] => blabla... }

从您发布的输出中,您似乎将卡号存储哈希密钥的数字数组$people但是,您随后尝试使用string数组查询关联的值,这绝对是行不通的。

在查询关联数据之前,需要将输入转换为数字数组:

puts "Insert Card (1234 5678 9123 4567) >> "
temp = gets.chomp
@card = temp.split(" ").map(&:to_i)
....

通常,Array在Ruby中用作哈希键是一种不好的做法,因为Array它是可变的,这可能会导致键和键哈希码之间的不一致。我会考虑使用Symbol卡号:

# update people
$people_updated = Hash[ $people.map{|k, v| [k.join.to_sym, v]} ]

# query
puts "Insert Card (1234 5678 9123 4567) >> "
temp = gets.chomp
@card = temp.scan(/\d+/).join.to_sym
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用参数ruby作为哈希键

来自分类Dev

在Rails中使用变量作为哈希键

来自分类Dev

如何在Ruby中使用相同的键对数组哈希中的值求和

来自分类Dev

哈希与键作为数组类型

来自分类Dev

在python中使用对象作为键时索引哈希表

来自分类Dev

在Perl哈希中使用多个值作为键

来自分类Dev

使用值的列表/集合/数组作为哈希键

来自分类Dev

如何在Ruby中使用变量访问符号哈希键

来自分类Dev

在Ruby on Rails中使用键和值创建动态哈希

来自分类Dev

使用Ruby检索作为哈希值的数组元素

来自分类Dev

使用符号作为哈希键

来自分类Dev

在事件哈希中使用UI哈希键

来自分类Dev

使用数组作为哈希表

来自分类Dev

Ruby单词数组作为哈希?

来自分类Dev

在PHP中使用日期作为键对多维数组进行排序

来自分类Dev

如何从Ruby中的哈希数组更改哈希键?

来自分类Dev

如何使用Ruby中的键将ID数组转换为哈希数组?

来自分类Dev

Ruby数组使用参数哈希

来自分类Dev

如何在Ruby中使用键声明多维数组

来自分类Dev

在Ruby中使用相同的键将数组转换为JSON

来自分类Dev

使用可变对象作为哈希键

来自分类Dev

使用数组中的值作为键在 JavaScript 哈希中设置默认值

来自分类Dev

使用键作为字符串,按哈希的第一个元素对哈希数组进行排序

来自分类Dev

为什么Rails可以将`if`用作哈希键,而不能在Ruby中使用

来自分类Dev

如何在Ruby 1.9中使用变量设置哈希键?

来自分类Dev

如何使用数组元素作为哈希键并将所有哈希值都设置为给定值的方式将数组转换为哈希

来自分类Dev

ruby如何使用新键和数组中的值进行哈希处理

来自分类Dev

基于键的哈希合并数组值的ruby数组

来自分类Dev

在属性中使用哈希表键

Related 相关文章

  1. 1

    使用参数ruby作为哈希键

  2. 2

    在Rails中使用变量作为哈希键

  3. 3

    如何在Ruby中使用相同的键对数组哈希中的值求和

  4. 4

    哈希与键作为数组类型

  5. 5

    在python中使用对象作为键时索引哈希表

  6. 6

    在Perl哈希中使用多个值作为键

  7. 7

    使用值的列表/集合/数组作为哈希键

  8. 8

    如何在Ruby中使用变量访问符号哈希键

  9. 9

    在Ruby on Rails中使用键和值创建动态哈希

  10. 10

    使用Ruby检索作为哈希值的数组元素

  11. 11

    使用符号作为哈希键

  12. 12

    在事件哈希中使用UI哈希键

  13. 13

    使用数组作为哈希表

  14. 14

    Ruby单词数组作为哈希?

  15. 15

    在PHP中使用日期作为键对多维数组进行排序

  16. 16

    如何从Ruby中的哈希数组更改哈希键?

  17. 17

    如何使用Ruby中的键将ID数组转换为哈希数组?

  18. 18

    Ruby数组使用参数哈希

  19. 19

    如何在Ruby中使用键声明多维数组

  20. 20

    在Ruby中使用相同的键将数组转换为JSON

  21. 21

    使用可变对象作为哈希键

  22. 22

    使用数组中的值作为键在 JavaScript 哈希中设置默认值

  23. 23

    使用键作为字符串,按哈希的第一个元素对哈希数组进行排序

  24. 24

    为什么Rails可以将`if`用作哈希键,而不能在Ruby中使用

  25. 25

    如何在Ruby 1.9中使用变量设置哈希键?

  26. 26

    如何使用数组元素作为哈希键并将所有哈希值都设置为给定值的方式将数组转换为哈希

  27. 27

    ruby如何使用新键和数组中的值进行哈希处理

  28. 28

    基于键的哈希合并数组值的ruby数组

  29. 29

    在属性中使用哈希表键

热门标签

归档