8. 扩展库

8.1 如何使用交互式Ruby?

您可以像下面这样来使用irb脚本

$ irb
irb(main):001:0> 1 + 2 * 3
7
irb(main):002:0> if true
irb(main):003:1>   :true
irb(main):004:1> else
irb(main):005:1*   :false
irb(main):006:1> end
:true
irb(main):007:0> 

它就是交互式的Ruby。

详细用法请参考irb.rb

若您使用的是二进制包形式的ruby的话,irb可能在其他包里。请您查阅各发布版本的信息。

8.2 有调试器吗?

有的。请您这样启动Ruby。详情请参考debug.rb

ruby -r debug your_script

8.3 怎样在Ruby中使用以C写成的库?

Ruby就是用C写成的,而且Ruby提供了完备的工具,使您可以使用以C写成的库。只要您编写出C库和Ruby间的接口就行。

首先请阅读Ruby的解包目录中的[ruby-src:README.EXT.ja]。该文档可以解答您所提出的有关Ruby的问题。

其次,您可以在ext/的子目录中找到实例。最后,您还可以参考ftp网站上contrib中的资料。

8.4 有Tcl/Tk的接口吗?

在标准配置的扩展库中,提供了Tcl/Tk的接口。一个是在ext/tcltklib/lib中。使用require "tcltk"语句进行加载之后,就可以进行编程来把Tcl脚本置入Ruby脚本之中。

另一个是在ext/tk/中。使用require "tk"进行加载之后,就可以使用类似Ruby的方式来实现Tk的GUI。

8.5 为什么我的Tk不管用?

大半是因为您使用的Tk的版本太老了。请将其替换为较新的版本即可。

8.6 有gtk+、xforms的接口吗?

请参考[RAA:Ruby/GTK], [RAA:Ruby/Forms]

8.7 进行日期计算时需要注意哪些问题?

Time对象的有效表示范围是从1970年1月1日起到2038年1月19日止。请使用标准附加库date.rb。另外,请参考[ruby-src:sample/cal.rb]