看看这段 code
require 'open-uri'
open("http://www.ruby-lang.org/en") do |f|
f.each_line {|line| p line}
puts f.base_uri # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
puts f.content_type # "text/html"
puts f.charset # "iso-8859-1"
puts f.content_encoding # []
puts f.last_modified # Thu Dec 05 02:45:02 UTC 2002
end
在第一行是 require。这是一个 Ruby 中在你所写的脚本中加入其他来源(如:Ruby Gems 或者是你写的其他东西)的功能(features) 的方法。与其一次给你所有功能,Ruby 会问你你打算使用什么。这可使你的程式保持轻薄,又可当做之后其他程式设计师阅读你的程式时的参考。
我在这里称呼他们为“功能(features)”。但实际上没人这样称呼。我这样做只是取了点巧,使你在学习时先不用理解“行话”。在继续进行之前你得先知道它们的真名 modules
(模组)。
从现在开始我们将把这些我们 require 进来的功能称作 modules
(模组)。我会这样说:“你想要 require open-uri
module。”也有人给它另外一个称呼:“函式库(libraries)”。但在这里我们还是先叫它们 modules
(模组)吧。
require
与 include
的差异点。它们有什么不同?require
一段没有特别包含 module
的脚本吗?