【问题标题】:Does requiring a gem load everything, including things I don't use?是否需要 gem 加载所有内容,包括我不使用的东西?
【发布时间】:2023-03-12 08:00:02
【问题描述】:

假设 x 是一个 gem,它包含 Hello 和 Goodbye 类。

如果我编写了一个require 'x' 的程序,但只使用了Hello 类。 Goodbye 类也加载了吗?

【问题讨论】:

    标签: ruby memory-management gem require ruby-1.9.3


    【解决方案1】:

    您包含脚本或文件,而不是 gem。

    与

    require 'x' 
    

    您加载文件x.rb。您加载的 x.rb 由搜索路径定义,搜索路径可以通过 gem 定义修改(您在示例代码中未使用的内容)。

    文件x.rb 中的所有内容都已加载。如果x.rb 包含其他require 命令,也会加载这些文件。

    【讨论】:

    • 如果您想解决这个问题,请查看autoload。
    • 我在问题描述中没有发现两个类在同一个文件中。它们只在同一个 gem 中定义。
    • 谢谢,我的意思是这两种情况的问题都是开放式的。抱歉,如果不清楚。我发了一个后续Q:stackoverflow.com/questions/10002405/…
    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多