ruby - 将变量的名称作为输入并输出其值 - Ruby
问题描述
我想知道是否有一些Ruby可以做这样的事情:
@my_var = "foo"
some_function_i_dont_know_name_of("@my_var")
=> "foo"
解决方案
好像您正在寻找instance_variable_get
. 从文档:
返回给定实例变量的值,或者
nil
如果未设置实例变量。@
对于常规实例变量,应该包含变量名的一部分。NameError
如果提供的符号作为实例变量名无效,则引发异常。字符串参数被转换为符号。class Fred def initialize(p1, p2) @a, @b = p1, p2 end end fred = Fred.new('cat', 99) fred.instance_variable_get(:@a) #=> "cat" fred.instance_variable_get("@b") #=> 99
推荐阅读
- marklogic - 使用 XML 文档中的值搜索 Xpath 并从 Marklogic 获取文档 URI
- python - 如何为 Jenkins 设置 Python 目录结构?
- apache-spark - Spark Streaming 跨批次维护流数据
- c++ - 阅读简单的 .txt 时,我得到了垃圾值
- python - 如何读取在同一列中具有多个 json 值的数据框
- sql - SQL Server - 在函数中创建超时异常
- sql - 使用 WHERE 和 COUNT 在 sql 查询中返回错误值
- python - Python:将多个二进制列转换为单个分类列
- python - 字符串文字以单引号开头并以三引号结尾,它如何有效?
- linux - GREP 或 AWK:在每行的前 N 个字符中搜索,并输出匹配模式的周围行