ruby - 如何通过包含变量名称的字符串引用变量?
问题描述
我想通过搜索关键字对项目进行分类。对于每个项目类型,我都有一组关键词。我将变量名作为项目类型,变量的内容作为关键字进行匹配。
project_detail = "Build a school"
a = %w[education school]
b = ["Health Care", "Clean Water"]
projects = %w[a b]
project_type = String.new
projects.each do |e|
# How to refer to the variable a and b? (I used one of the answers)
eval(e).each do |keyword|
project_type = e if project_detail.match(/#{keyword}/)
end
end
解决方案
您可以使用以下任何一种:
1. 评估
a = 1
b = 2
c = 3
vars = %w[a b c]
vars.each { |v| puts eval(v) }
输出:
1
2
3
=> ["a", "b", "c"]
2.绑定#local_variable_get
vars.each { |v| puts binding.local_variable_get(v) }
推荐阅读
- ajax - 使用 Ajax 上传后显示照片 - Laravel
- javascript - 在 JavaScript 中创建两个数字之间的范围
- node.js - 从根“/”路由获取似乎不起作用?
- python - Tkinter Python 中的类似用户界面的表格
- android - 无法删除为单个值设置的 ValueEventListener,并且在 Firebase DB 中没有超时
- android - 上传文件时出现错误(没有这样的文件或目录)
- c# - 如何从外部程序集调用方法
- javascript - 未捕获的类型错误:无法在反应渲染中读取 null 的属性“getContext”
- firebase - 如何在颤动中显示来自firebase的数据?
- google-play - 如何在 Google Play 搜索中通过关键字获得正确的应用排名?