如果您想报告此常见问题解答中的错误或提出改进建议,请访问我们的 GitHub 存储库 并打开一个问题或提交一个拉取请求。
扩展库
如何交互式地使用 Ruby?
本节或部分内容可能已过时或需要确认。
您可以尝试使用 irb
。以下内容改编自 Kentaro Goto (Gotoken),最初出现在 [ruby-talk:444] 中。
- 从 Ruby 存档中的 contrib 目录 获取
irb
的最新 tarball。 - 解压
irb
目录树。 - 将
irb/
目录的位置添加到$RUBYLIB
环境变量。 - 在您的路径中的某个位置,从
$RUBYLIB/irb/irb.rb
创建一个名为irb
的符号链接。 chmod +x $RUBYLIB/irb/irb.rb
- 可能需要使用
rehash
来告知您的登录 shell 新命令。 - 输入
irb
。
如果 readline 扩展模块与您的解释器一起工作,它会使 irb
更加有趣。
在 Ruby 发行版的 samples/
目录中还有一个简单的程序 eval
。它允许您输入表达式并查看它们的值。您可以将 eval
复制到 Ruby 树中的 site_ruby
目录,然后使用以下方式调用它:
ruby -r eval -e0
Ruby 有调试器吗?
有一个类似于 gdb 的 Ruby 调试器。
ruby -r debug your_program
如何在 Ruby 中使用 C 语言编写的库?
在所有脚本语言中,Ruby 可能是最容易扩展的。它不存在引用计数和变量类型的问题,并且需要学习的接口非常少。事实上,用于扩展 Ruby 的 C 代码最终看起来非常像 Ruby 代码本身。
首先,阅读 Ruby 源代码中的 doc/extension.rdoc
文件,或者阅读 docs.ruby-lang.org 上的 extension.rdoc。这是一个很好的文档,不仅适用于编写扩展库的人,也适用于想更深入了解 Ruby 的人。
然后,RubyGems 站点提供了 关于创建带有扩展的 gem 的指南。它展示了如何在安装时构建带有 C 扩展的 gem。它还链接到一些现有的包装 C 库的 gem,以及进一步阅读的资料。
您可能还想查看解释器本身的源代码,以及 ext/
目录中的各种提供的扩展(您可以在 GitHub 上的 Ruby 存储库 中浏览)。
可以在 Ruby 中使用 Tcl/Tk 吗?
本节或部分内容可能已过时或需要确认。
标准发行版中包含两个 Tcl/Tk 接口。一个在 ext/tcltk/
下,并使用 require "tcltk"
加载。其语法非常接近传递给 Tcl 解释器的 Tcl。不幸的是,此库的描述是用日语编写的。
另一个在 ext/tk/
下,并使用 require "tk"
加载。它的语法更接近 Perl 和 Python 接口提供的 Tk 接口的风格。
Tk 无法工作。为什么?
本节或部分内容可能已过时或需要确认。
您的 Tk 版本可能过旧,请尝试更新的版本。
可以在 Ruby 中使用 gtk+ 或 xforms 接口吗?
本节或部分内容可能已过时或需要确认。
您可以在 Ruby ftp 站点的 contrib/
下找到 ruby-gtk-x.xx.tar.gz
和 ruby-forms-x.x.tar.gz
。
如何进行日期运算?
本节或部分内容可能已过时或需要确认。
一个 Time
对象只能表示 1970 年 1 月 1 日到 2038 年 1 月 19 日之间的日期。
提供了两个标准扩展库模块:require "date"
,它很简单并使用英语日历;以及 require "date2"
,它用途更广泛。
另请参阅 sample/cal.rb
。