内容 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11

官方 Ruby 常见问题解答

如果您想报告此常见问题解答中的错误或提出改进建议,请访问我们的 GitHub 存储库 并打开一个问题或提交一个拉取请求。

扩展库

如何交互式地使用 Ruby?

本节或部分内容可能已过时或需要确认。

您可以尝试使用 irb。以下内容改编自 Kentaro Goto (Gotoken),最初出现在 [ruby-talk:444] 中。

  1. 从 Ruby 存档中的 contrib 目录 获取 irb 的最新 tarball。
  2. 解压 irb 目录树。
  3. irb/ 目录的位置添加到 $RUBYLIB 环境变量。
  4. 在您的路径中的某个位置,从 $RUBYLIB/irb/irb.rb 创建一个名为 irb 的符号链接。
  5. chmod +x $RUBYLIB/irb/irb.rb
  6. 可能需要使用 rehash 来告知您的登录 shell 新命令。
  7. 输入 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.gzruby-forms-x.x.tar.gz

如何进行日期运算?

本节或部分内容可能已过时或需要确认。

一个 Time 对象只能表示 1970 年 1 月 1 日到 2038 年 1 月 19 日之间的日期。

提供了两个标准扩展库模块:require "date",它很简单并使用英语日历;以及 require "date2",它用途更广泛。

另请参阅 sample/cal.rb