You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby文件中加载执行另一rb文件代码并调用其定义变量

Ruby跨文件执行代码并复用变量实现方案

要实现code2.rb执行code1.rb代码且复用code1中定义的变量,核心要解决Ruby文件级局部变量作用域隔离的问题,具体实现方法如下:

首选方案(无需修改code1.rb)

直接在code2.rb中读取code1.rb的内容,在当前上下文执行即可让code1的局部变量直接被code2访问:
修改后的code2.rb代码:

# 读取code1.rb内容并在当前作用域执行
eval(File.read('code1.rb'))
a = 10
e = c * 5 + a
puts "e = #{e}"

执行ruby code2.rb命令即可得到预期输出:

c = 25
e = 135

备选方案(允许修改code1.rb时使用)

如果允许调整code1.rb的代码,可将需要跨文件访问的变量改为全局变量/实例变量,避开局部变量作用域限制:

  1. 修改后的code1.rb代码:
a = 10
b = 15
$c = a + b
puts "c = #{$c}"
  1. 修改后的code2.rb代码:
# 加载执行code1.rb
load 'code1.rb'
a = 10
e = $c * 5 + a
puts "e = #{e}"

运行后输出结果和首选方案完全一致。

内容的提问来源于stack exchange,提问作者Basa Sai ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:06:03