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

如何访问IRB中需要的Ruby文件中定义的变量?

发布时间:2020-12-16 20:25:30 所属栏目:百科 来源:网络整理
导读:文件welcome.rb包含: welcome_message = "hi there" 但是在IRB中,我无法访问刚创建的变量: require './welcome.rb'puts welcome_message # = undefined local variable or method `welcome_message' for main:Object 什么是最好的方法来引入预定义的变量,
文件welcome.rb包含:
welcome_message = "hi there"

但是在IRB中,我无法访问刚创建的变量:

require './welcome.rb'

puts welcome_message 

# => undefined local variable or method `welcome_message' for main:Object

什么是最好的方法来引入预定义的变量,并在您需要在IRB会话中完成初始化工作?全局变量似乎不是正确的路径.

解决方法

虽然您无法访问必需文件中定义的局部变量,但您可以访问常量,您可以访问存储在两个上下文中访问的对象中的任何内容.因此,根据您的目标,有几种方式来分享信息.

最常见的解决方案可能是定义一个模块,并将您的共享值放在那里.由于模块是常量,您将能够在需要的上下文中访问它.

# in welcome.rb
module Messages
  WELCOME = "hi there"
end

# in irb
puts Messages::WELCOME   # prints out "hi there"

你也可以将值放在一个类中,效果大致相同.或者,您可以将其定义为文件中的常量.由于默认上下文是Object类的对象,简称main,您还可以在main上定义一个方法,实例变量或类变量.所有这些方法最终都是基本上不同的方式来制造“全局变量”,或多或少地,并且可能不是最适合大多数目的.另一方面,对于具有非常明确范围的小型项目,可能会很好.

# in welcome.rb
WELCOME = "hi constant"
@welcome = "hi instance var"
@@welcome = "hi class var"
def welcome
  "hi method"
end


# in irb
# These all print out what you would expect.
puts WELCOME
puts @welcome
puts @@welcome
puts welcome

(编辑:李大同)

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

    推荐文章
      热点阅读