ruby - 我应该实现什么才能使自定义类的行为与数组完全一样?

标签 ruby arrays

假设我有一个自定义类,我应该覆盖什么以获得类似数组的行为?我认为提供 each 方法是不够的,因为这不会让我访问 [] 方法?

我应该继承 Array 类吗?我应该在那里覆盖什么?

最佳答案

对于类似可枚举的行为(这听起来像你想要的),你应该include Enumerable来获得Enumerable模块的功能,这意味着你需要提供一个方法每个。这将为您提供许多您想要的相关方法 ( Enumerable details )。

如果您只需要 [] 之类的功能,您只需要以下方法,仅此而已:

def [] key
  # return value for key here.
end

def []= key, value
  # store value under key here.
end

关于ruby - 我应该实现什么才能使自定义类的行为与数组完全一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239880/

相关文章:

ruby - 使用 Ruby 查找具有更改目录的文件

ruby - 通过 Restful API 在 GitHub 上创建新的 Git 存储库?

c++ - 如何将动态二维数组传递给 C++ 中的函数

C++:是什么导致了这个堆栈粉碎错误?

ruby - 如何使用 SparkPosts Ruby API 客户端设置reply_to/reply-to?

ruby - 正则表达式根据之前匹配的内容匹配某些内容

ruby-on-rails - "Can' t 批量分配 protected 属性 : admin"with sample_data. rake

php - json_decode 未通过 curl 调用返回正确的 api 响应 php 数组

C++ - 将 ASCII 字符数组中可能的数值转换为字符的最简单方法

c++ - 大文件中的 C++ 文件读取错误