ruby - 如何在 Ruby 中原生实现像 [] 这样的方法?

标签 ruby arrays methods function

所以如果像 [] 和 []= 这样的 index_acessor 方法没有硬编码到解释器中,有没有办法直接在 Ruby 中定义这些方法?换句话说,您如何定义一个方法名称,其中参数位于方法名称“[*]”的一部分

我发誓我曾经在 Pickaxe 或 Ruby Way 中找到过这个,但是翻了几个小时的书页让我两手空空

最佳答案

class Foo
  def []=(k, v)
  end

  def [](k)
  end
end

编辑 1:

尽管从定义上看可能不像,但上面定义的方法可以这样调用:

f = Foo.new
f[1] = 2
f[3]

关于ruby - 如何在 Ruby 中原生实现像 [] 这样的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025077/

相关文章:

ruby - 如何使用 String.delete 从 Ruby 中的字符串中删除 '<em>'?

javascript - Ruby on Rails :Can not call ajax callback from form_tag

arrays - 如何迭代数组一定次数?

arrays - 如何检查变量是否在 PowerShell 中的数组中?

javascript从对象数组中提取相同的键值

javascript - JS : Create a method to return an array that does not include the index values from the array passed to my method

java - 将 java 方法参数设为 final

ruby-on-rails - 无法使用 octokit 连接到 Github 帐户

javascript - 如何过滤属于数组值一部分的对象?

objective-c - 如何返回两个值?