如果您想报告此常见问题解答中的错误或提出改进建议,请访问我们的 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。