Ruby 编程:模块、命名空间、反射与元编程技巧
1. 按需自动加载库
在 Ruby 编程中,为了节省用户的内存,可以将 functions.rb 文件拆分为三个文件,让 functions.rb 成为一个充满 autoload 调用的存根文件。示例代码如下:
# functions.rb
autoload :Decidable, "decidable.rb"
autoload :Semidecidable, "semidecidable.rb"
模块本身则放入新 functions.rb 中提到的文件里:
# decidable.rb
module Decidable
# ... 这里有很多很多方法。
end
# semidecidable.rb
module Semidecidable
# ... 这里有很多很多方法。
end
以下代码在所有模块都在 functions.rb 中时可以正常工作,当 functions.rb 仅包含 autoload 调用时同样可行:
require 'functions'
Decidable.class
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



