声明实例变量迭代哈希!

2024-06-24

我想做以下事情:

我想声明一个迭代字典的类的实例变量。

假设我有这个哈希

hash = {"key1" => "value1","key2" => "value2","key3" => "value3"}

我想将每个键作为类的实例变量。我想知道我是否可以声明迭代该哈希的变量。像这样的事情:

class MyClass
  def initialize()
    hash = {"key1" => "value1","key2" => "value2","key3" => "value3"}
    hash.each do |k,v|
      @k = v
    end
  end
end

我知道这行不通!我放这段代码只是为了看看你是否能更清楚地理解我想要的东西。

Thanks!


class MyClass
  def initialize()
    hash = {"key1" => "value1","key2" => "value2","key3" => "value3"}
    hash.each do |k,v|
      instance_variable_set("@#{k}",v)
      # if you want accessors:
      eigenclass = class<<self; self; end
      eigenclass.class_eval do
        attr_accessor k
      end
    end
  end
end

特征类是一个只属于单个对象的特殊类,因此定义的方法将具有该对象的实例方法,但不属于该对象普通类的其他实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

声明实例变量迭代哈希! 的相关文章

  • 两列 Jekyll 布局,用标签分隔?

    我目前正在 Jekyll 博客上工作 我想将我的 Markdown 文件采用以下格式 div class row div class col md 6 div div class col md 6 div div 我希望我的代码块在一列中
  • C++ 访问嵌套类的私有成员

    标题可能有点误导 我有以下问题 我有一棵由叶子和内部节点组成的树 用户应该能够在叶子中存储任何信息and该树有一些方法可以获取一组用户定义的值 并且需要在恒定时间内 未摊销 访问相应的叶子 我提出了以下想法 但它不起作用 因为不幸的是我无法
  • 如何在 jQuery.ui.autocomplete 中的自动完成弹出窗口下方添加所有搜索的链接?

    我有使用 jQuery UI 自动完成插件的搜索建议自动完成功能 http jqueryui com autocomplete http jqueryui com autocomplete 但是如何添加结果弹出项目的底部 其行为类似于 Qu
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 获取包中声明的所有 Java 类的名称

    我正在编写一个功能 它将有助于将类放入我的程序的某个包中 另外 我只想要子类某个类的类 我需要这些类才能调用它们的静态方法 有没有一种自动的方法来做到这一点 如果是的话 速度慢吗 如果我不清楚 我想要的是这样的 ArrayList
  • 如何使用 Rspec 来测试使用 Paperclip 的模型是否正在验证上传文件的大小?

    该模型 class Attachment lt ActiveRecord Base belongs to narrative attr accessible description user id narrative id has atta
  • 如何在 Javascript 中创建类?

    这是我到目前为止所得到的 它根本不起作用 我的玩家类中的所有变量都是空的 并且更新永远不会被调用 我的意思是编程类 而不是 CSS 类 IE 不是 movi ngdiv 颜色 ff0000
  • rspec Rails 测试:如何强制 ActiveJob 作业内联运行某些测试?

    我希望我的后台作业能够内联运行某些标记的测试 我可以通过包装测试来做到这一点perform enqueued do但我希望能够用元数据标记它们 并且如果可能的话 它会自动发生 我尝试过以下方法 it does everything in t
  • 在 C++ 中的模板函数内初始化 auto(未知)类型的向量

    我有一个模板函数 我想在其中生成一个未知类型的向量 我试图使其自动 但编译器说这是不允许的 模板函数获取迭代器或指针 如后面的主函数内的测试程序中所示 如何解决这个问题 template
  • 重写的方法仍然被调用

    我正在使用一个正在实现的库belongs to数据库中两个条目之间的关联 由于这不是我需要的行为 我想通过重写此方法prepend 但 pry 告诉我 原来的方法仍然被调用 我仔细检查了一下 我使用的是 ruby 2 0 前置的代码 mod
  • 如何在 swagger 中传递多值查询参数

    我在 swagger yml 中有以下服务 该服务被编写为可以多次传递page id 例如 pages page id 123 page id 542 我检查了这个链接https swagger io specation https swa
  • Json(/hash) 到 ruby​​ 对象?

    在 Javascript 中 您可以将 json 作为对象访问 person name first Peter last Parker person name first 在红宝石中我必须像这样使用它 person name first 是
  • 如何从 Sinatra 中删除路线?

    我有一些动态加载的插件 它们在启动时注册它们的路由 但是我还需要能够在禁用它们时删除它们的路由 有没有办法删除现有的路线 API 没有任何我能找到的方法来删除它们 我能想到的唯一其他方法就是直接访问 Sinatra Base 中的 rout
  • Rails 6 中的protect_from_forgery?

    The protect from forgery方法不包含在默认 Rails 6 应用程序的应用程序控制器中 但有嵌入式 ruby在主应用程序布局中 这是否意味着protect from forgery方法已被抽象并且在应用程序控制器中不再
  • Rails 资产管道不包括 application.js 清单中所需的文件

    Rails 资产管道不包含 application js 中所需的文件 呈现给浏览器的唯一 javascript 文件是 application js 并且 require 行未编译为包含应有的标签 This is a manifest f
  • 更快的 MD5 替代品?

    我正在开发一个程序 可以在整个驱动器中搜索给定的文件 目前 我计算已知文件的 MD5 哈希值 然后递归扫描所有文件 寻找匹配项 唯一的问题是 MD5 在处理大文件时速度非常慢 是否有一种更快的替代方案可供我使用 同时保留极小的误报概率 所有
  • Ruby 相当于 Python 的多处理模块是什么?

    为了在 Ruby 或 Python 中获得真正的并发性 我需要创建新的进程 Python 使用以下命令使这变得非常简单multiprocessing模块 它抽象了所有 fork wait 的好处 让我专注于我的代码 Ruby 有类似的东西吗
  • Java如何重写抽象类中的可选方法?

    假设我们有一个基类 public abstract class BaseFragment extends Fragment protected abstract boolean postExec 然后从它派生出其他类 例如 Fragment
  • Python父类访问子私有变量

    以下代码会生成错误 class A object def say something self print self foo print self bar class B A def init self self foo hello sel
  • Rails 5+ 中 OO/Table 继承(即 STI、MTI、CLI)的可能解决方案是什么?

    这些是我看到的可以帮助解决 Rails 5 对象关系阻抗以及如何构造多个继承的类 表 https stackoverflow com questions 39524488 rails 5 object relation impedance

随机推荐