Ruby(Hard Way,Ex48)将数组匹配为哈希,然后将值分配给struct?

杰伊·波波(Jay Bobo)

我已经看过Ruby文档中有关struct,map,array和hash;的所有内容;但无论出于什么原因,都没有掌握如何做到这一点。我有两个问题。

  1. 查看数组和哈希值是否具有共同值的好方法是什么?
  2. 从哈希中,我如何找到一个值并“自动”获取它的键(反之亦然)并将其包含在其他事物的新实例中(例如Pair.new)?

我看到了这样的响应,但是并没有太大帮助48

Zed表示也要使用地图功能,但也没有用。使用Ruby,最有效的方法是检查哈希中的任何键是否与Array中的任何值匹配

锻炼说明可以在这里找到。Ruby The Hard Way EX.48说明

我的密码(try#2080)

class Lexicon

Pair = Struct.new(:token, :key)

def scan(stuff)
    @words = stuff.split(" ")
    return analyze
end

def analyze

    hash = { :direction => "north", :direction => "south", 
            :direction => "east", :direction => "west", :verb => "go",  
                                 :verb => "stop"}

    @words.map do |word|
        if word == hash[:direction]
        #i need something here that says if word matches a value in hash... 
        #assign matching key/value to a new instance of Pair
            Pair.new(word)
        else
                            *#puts to see if anything is sticking* 
            puts "Oh god its not working #{word}"
            puts Pair[]
            puts hash[:direction]
           end
       end
  end
end

a = Lexicon.new()
a.scan("north mama jeffrey homie")

终端

$ ruby lexicon.rb
Oh god its not working north
#<struct Lexicon::Pair token=nil, key=nil>
west

Oh god its not working mama
#<struct Lexicon::Pair token=nil, key=nil>
west

Oh god its not working Jeffrey
#<struct Lexicon::Pair token=nil, key=nil>
west

Oh god its not working homie
#<struct Lexicon::Pair token=nil, key=nil>
west

我的代码#2081与上述相同,但是,

   hash.each do |k, v|
      if v == @words
      #i need something here that says if word matches a value in hash... 
      #assign matching key/value to a new instance of Pair
        Pair.new(k,v)
      else
        puts "Oh god its not working"
        puts Pair[]
        puts hash[:direction]
        puts @words
      end
   end

终端

Oh god its not working
#<struct Lexicon::Pair token=nil, key=nil>
...
...
世界

您在这里遇到了几个问题。最重要的是,您的哈希不起作用;散列建立在具有唯一键的键值对上,因此您的散列实际上与以下内容相同:

hash = { :direction => "west", :verb => "stop"}

您最好按如下所示在哈希中交换键值对:

hash = { "north" => :direction, "south" => :direction, 
        "east" => :direction, "west" => :direction, "go" => :verb,  
                             "stop" => :verb }

@words.map do |word|
  hash.keys.include?(word) ? Pair.new(hash[word], word) : Pair.new(:error, word)
end

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

学习Ruby the Hard Way ex39:返回-1,密钥,默认值

来自分类Dev

将符号分配给Ruby中的变量

来自分类Dev

将符号分配给Ruby中的变量

来自分类Dev

如何将 ruby 变量分配给 javascript

来自分类Dev

使用相同的脚本编写后读取文件(Ruby the Hard Way ex16)

来自分类Dev

将哈希分配给数组

来自分类Dev

在C中构造(将值分配给struct数组)

来自分类Dev

按数组值将数组的数组排序为ruby中的哈希

来自分类Dev

了解Ruby The Hard Way第9章三重引号

来自分类Dev

f.gets.chomp在做什么?(学习Ruby Hard Way:练习20)

来自分类Dev

f.gets.chomp在做什么?(学习Ruby Hard Way:练习20)

来自分类Dev

ruby将数组分配给另一个变量,并且从该分配变量中删除元素时,也会在原始数组上删除该元素

来自分类Dev

将值分配给NumPy数组

来自分类Dev

将值分配给数组指针

来自分类Dev

将值分配给动态数组

来自分类Dev

Java:将值分配给数组

来自分类Dev

Ruby:将哈希值附加到每个循环中的数组

来自分类Dev

Ruby:Green_shoes,将list_box选择分配给变量

来自分类Dev

如何将数据分配给表单上的变量?[Ruby on rails]

来自分类Dev

使用Ruby和Padrino将类别分配给新创建的帖子

来自分类Dev

ruby axlsx gem:将公式分配给 axlsx 工作表而不使用添加行

来自分类Dev

将数组分配给哈希子项

来自分类Dev

将值分配给哈希中的*字符

来自分类Dev

Ruby:将数组映射为哈希,在哈希内创建一个数组

来自分类Dev

Ruby:将数组映射为哈希,在哈希内创建一个数组

来自分类Dev

Excel VBA将值分配给数组,然后粘贴到工作表

来自分类Dev

遍历特定列,然后将值分配给按钮

来自分类Dev

无法将数组分配给struct属性

来自分类Dev

C ++将指针数组分配给struct

Related 相关文章

  1. 1

    学习Ruby the Hard Way ex39:返回-1,密钥,默认值

  2. 2

    将符号分配给Ruby中的变量

  3. 3

    将符号分配给Ruby中的变量

  4. 4

    如何将 ruby 变量分配给 javascript

  5. 5

    使用相同的脚本编写后读取文件(Ruby the Hard Way ex16)

  6. 6

    将哈希分配给数组

  7. 7

    在C中构造(将值分配给struct数组)

  8. 8

    按数组值将数组的数组排序为ruby中的哈希

  9. 9

    了解Ruby The Hard Way第9章三重引号

  10. 10

    f.gets.chomp在做什么?(学习Ruby Hard Way:练习20)

  11. 11

    f.gets.chomp在做什么?(学习Ruby Hard Way:练习20)

  12. 12

    ruby将数组分配给另一个变量,并且从该分配变量中删除元素时,也会在原始数组上删除该元素

  13. 13

    将值分配给NumPy数组

  14. 14

    将值分配给数组指针

  15. 15

    将值分配给动态数组

  16. 16

    Java:将值分配给数组

  17. 17

    Ruby:将哈希值附加到每个循环中的数组

  18. 18

    Ruby:Green_shoes,将list_box选择分配给变量

  19. 19

    如何将数据分配给表单上的变量?[Ruby on rails]

  20. 20

    使用Ruby和Padrino将类别分配给新创建的帖子

  21. 21

    ruby axlsx gem:将公式分配给 axlsx 工作表而不使用添加行

  22. 22

    将数组分配给哈希子项

  23. 23

    将值分配给哈希中的*字符

  24. 24

    Ruby:将数组映射为哈希,在哈希内创建一个数组

  25. 25

    Ruby:将数组映射为哈希,在哈希内创建一个数组

  26. 26

    Excel VBA将值分配给数组,然后粘贴到工作表

  27. 27

    遍历特定列,然后将值分配给按钮

  28. 28

    无法将数组分配给struct属性

  29. 29

    C ++将指针数组分配给struct

热门标签

归档