习题 12: 模组 (Module)
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
看看这段 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) 还有另外一个名字
我在这裡称呼他们为「功能(features)」。但实际上没人这样称呼。我这样做只是取了点巧,使你在学习时先不用理解「行话」。在继续进行之前你得先知道它们的真名 modules
(模组)。
从现在开始我们将把这些我们 require 进来的功能称作 modules(模组)。我会这样说:「你想要 require open-uri
module。」也有人给它另外一个称呼:「函数库(libraries)」。但在这里我们还是先叫它们 modules
(模组)吧。
加分习题
上网搜寻 require
与 include
的差异点。它们有什麽不同?
你能 require
一段没有特别包含 module
的脚本吗?
搞懂 Ruby 会去系统的哪裡找你 require 的 modules。
在线练习
{$ activeFileHint $}