Tag: 范围

如何在ruby中访问(阴影)全局函数

我想知道如何从类中定义方法fn来访问ruby中的全局函数fn 。 我通过对函数进行别名来解决这个问题: def fn 结束 class级酒吧 别名global_fn fn def fn #如何在没有别名的情况下访问全局fn global_fn 结束 结束 我正在寻找c ++的::以访问全局范围的东西,但我似乎找不到任何有关它的信息。 我想我不知道具体到底是什么。

(Ruby,Rails)SELF在模块和库中的上下文……?

关于在模块或库中使用“SELF”的快速问题。 基本上什么是“SELF”的范围/上下文,因为它与模块或库有关,如何正确使用? 有关我正在讨论的示例,请查看安装了“restful_authentication”的“AuthenticatedSystem”模块。 注意:我知道’self’在其他语言中等同于’this’以及’self’如何在类/对象上操作,但是在模块/库的上下文中没有“自我”。 那么,在没有类的模块中,自我的上下文是什么?

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

welcome.rb文件包含: welcome_message = “hi there” 但是在IRB中,我无法访问刚刚创建的变量: require ‘./welcome.rb’ puts welcome_message # => undefined local variable or method `welcome_message’ for main:Object 当您在IRB会话中require某些内容时,引入预定义变量并完成初始化工作的最佳方法是什么? 全局变量似乎不是正确的路径。

ruby中各种变量范围之间的差异

Ruby有5个变量范围: 局部变量 :这些是正常变量,例如x = 25 , y = gaurish ,其中x和y是局部变量。 实例变量 :这些用实际变量名称的@符号表示。 主要用于类,以便类的每个实例/对象具有不同/单独的值。 例。 @employee.name = ‘Alex’ 类变量 :在变量名前面用@@符号表示。 类变量,我认为具有相同的值accos所有实例/对象。 全局变量 :它们以$符号开头, 随处可访问。 示例$LOAD_PATH 常量 :必须以大写字母开头,但必须按照ALL_CAPS的惯例ALL_CAPS 。 虽然,它是一个常数,但它的值不是常数,可以改变(虽然ruby会发出警告)。 从某种意义上说,这也像一个变量。 正如您可能注意到的,以上所有都是存储某些类型值的变量,它们的值可以更改。 但是,每个范围都会有所不同。 拥有5种不同类型的可变范围让我感到困惑。 主要是,我很难决定在什么情况下,我应该在我的代码中使用特定的范围。 所以我脑子里有一些问题。 请回答: 我注意到,与实例变量不同,局部变量和类变量对于所有对象/实例保持相同。 那么局部变量和类变量有什么区别? 可以使用局部变量代替类变量吗? 或相反亦然。 如果是,那么为什么,如果没有,那么为什么不呢? ruby中的全局变量让我想起了PHP中邪恶的global $x变量。 ruby中的全局变量也被认为是邪恶的,因此不应该使用。 或者,在特定情况下,在ruby中使用全局变量是有意义的吗? 为什么常量不是常量并允许更改它们的值? 根据定义,常数的值应该是不变的吗? 否则,我们可以使用另一个变量而不改变它的值。 那相当于ruby中的CONSTANT吗? 任何页面/资源/链接解释了ruby中5个不同变量范围之间的区别? 我想保留一个方便参考。 在什么用例下,我应该在我的代码中使用特定的变量作用域。 因此,人们会解释所有5个案例,这些案例很酷,这是我混淆的主要原因。 在java中有像public这样的事实上的选择吗? 在大多数用例中哪个是安全的赌注? 感谢您花时间阅读并回答问题