Ruby 一个小问题一直困扰我

anleb · 2012年07月06日 · 最后由 heliang7 回复于 2012年07月17日 · 3681 次阅读

require 'rubygems'什么意思?我 gem list 没发现这个 gems 包啊,只有 rubygems-update,这个 require 'rubygems'写在这里到底有什么作用,我知道它可以指定特定版本的包,但是

require 'rubygems'
require 'pp'

到底有什么作用,又没指定版本

哥们你先去看看基础的东西啊 Ruby 里有标准库、核心库和第三方库。pp 什么的都是标准库,随 Ruby 安装就有的,由 Ruby core team 维护。不用 gem 安装。

#1 楼 @hooopo 第三方库,难道就必须写 require 'rubygems'?

1 楼的建议很好!

1.9 以前 rubygems 不是内置的,而是一个库,需要 require 进来才能继续 require gem。

1.9 以后内置了 rubygems 了,就不用 require 'rubygems' 了。

#4 楼 @Rei very good .我知道 use google or book before ask the question!公司上不了网,资料有限,其实细节问题很能看出问题 #1 楼 @hooopo #3 楼 @googya

Ruby 解释器启动时会加载很多标准库。

puts $"

输出结果为:

enumerator.so /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-linux/enc/encdb.so /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-linux/enc/trans/transdb.so /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-linux/rbconfig.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/prettyprint.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/pp.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-linux/stringio.so /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/benchmark.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/ostruct.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/find.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-linux/date_core.so /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/date/format.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/date.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/time.rb /root/bin/ruby/lib/addition.rb /root/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/ubygems.rb

最后一个就是你说的 rubygems

#5 楼 @Anleb 倒不是说细节问题不重要,而是说,这样的问题,你可以尝试一下,假如不加 rubygems 会怎么样?自己有一个探索的过程会更好一些。

#6 楼 @zw963

puts $"

打印不出来,irb 下面尝试的。

puts $:

可以,不过和你打印的内容不一样。 可以在镐头书 15.4 小节找到答案。

#8 楼 @heliang7

我很少用 irb, 都是直接编码来测试。不过,我在 irb 下面也可以输出 $".

#9 楼 @zw963 我又试了一下,的确可以的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号