小编Pat*_*ook的帖子

使用带方括号的数组#shift(Ruby)

我正在阅读为什么是Ruby的Poignant指南,我发现了这个代码示例,其中他向String类添加了一个类变量和一个实例方法.这个想法是,给定一个外星人的名字,如"Paij-Ree",我们可以运行类似的东西

"Paij-ree".determine_significance # returns "Personal AM"
Run Code Online (Sandbox Code Playgroud)

这是代码:

class String

  @@syllables = [
    { 'Paij' => 'Personal',
      'Gonk' => 'Business',
      'Blon' => 'Slave',
      'Stro' => 'Master',
      'Wert' => 'Father',
      'Onnn' => 'Mother' },
    { 'ree'  => 'AM',
      'plo'  => 'PM' }
  ]

  # a method to determine what a certain
  # name of his means

  def determine_significance

    parts = self.split( '-' )

    syllables = @@syllables.dup

    signif = parts.collect do |p|
      syllables.shift[p]
    end

    signif.join( ' ' )
  end

end
Run Code Online (Sandbox Code Playgroud)

我的问题:在Array#shift方法之后有哪些方括号的collect块中发生了什么?我只能找到像这样使用它的例子:

letters = …
Run Code Online (Sandbox Code Playgroud)

ruby shift

2
推荐指数
1
解决办法
237
查看次数

标签 统计

ruby ×1

shift ×1