如何在标准Ruby中通过哈希键动态创建本地及全局变量
实现方案
核心逻辑说明
- 全局变量直接使用Ruby内置的
global_variable_set方法设置,无需额外处理 - 本地变量通过当前上下文绑定对象
binding的内置方法local_variable_set创建,是标准Ruby原生支持的API,没有语法安全风险
完整可运行代码
# 定义原始哈希 var_map = {"string_1_0" => "1.0","$string_1"=>2} var_map.each do |var_name, var_value| if var_name.start_with?('$') # 处理全局变量 global_variable_set(var_name, var_value) else # 处理本地变量,兼容Ruby 2.1及以上所有标准Ruby环境 binding.local_variable_set(var_name, var_value) end end # 验证输出 puts $string_1 # 本地变量验证:puts string_1_0 会输出 "1.0"
运行结果
2
需求匹配说明
- 完全使用标准Ruby内置API,无第三方依赖,不需要JRuby环境
- 直接使用哈希原键作为变量名,无任何修改
- 同时支持全局变量和本地变量的动态创建,可直接正常访问生成的变量
内容的提问来源于stack exchange,提问作者Basa Sai ram
相关产品推荐
相关产品推荐

