加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

检查是否定义了局部变量,并将其名称作为ruby中的字符串

发布时间:2020-12-17 01:42:52 所属栏目:百科 来源:网络整理
导读:我可以检查是否定义了局部变量,并将其名称作为字符串? 我知道有定义的函数吗?但你必须自己给出变量. 例: a = 'cat'print defined?(a) # = "cat"print defined?(b) # = nil 我需要的是: a = 'cat'print string_defined?("a") # = "cat"print string_defin
我可以检查是否定义了局部变量,并将其名称作为字符串?

我知道有定义的函数吗?但你必须自己给出变量.

例:

a = 'cat'
print defined?(a) # => "cat"
print defined?(b) # => nil

我需要的是:

a = 'cat'
print string_defined?("a") # => "cat"
print string_defined?("b") # => nil

或类似的东西.我在文档中找不到它……

我试过使用respond_to ?,但似乎不起作用……

解决方法

您可以使用 eval执行此操作:

a = 'cat'
eval("defined?(#{'a'})")
=> "local-variable"
eval("defined?(#{'b'})")
=> nil

免责声明:此答案使用eval,因此如果您不严格控制要传递给它的字符串,则会很危险.如果这些字符串来自用户输入,绝对不应该这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读