IRB - 交互式 Ruby
有时候你只想用 Ruby “试试某些东西”。标准的 Ruby 解释器 Ruby.exe 远非用于此目的理想工具。虽然可以从命令提示符运行 Ruby,并一次输入一行代码,但只有在输入文件结束符(Windows 上为 CTRL+Z,其它操作系统时为 CTRL+D)时才会执行代码。要获得与 Ruby 交互的更好方法,请使用 Interactive Ruby shell,IRB.exe。要开始使用这个,请转到命令提示符并输入:
irb
你现在应该看到类似于以下内容的提示:
irb(main):001:0>
现在开始输入一些 Ruby 代码。你可以在多行上输入表达式;表达式完成后,irb 将对其进行计算并显示结果。尝试以下(在 +
后按 Enter 键):
x = ( 10 +
( 2 * 4 ) )
在闭合括号后按 Enter 键时,irb 将计算表达式并显示结果:
=> 18
你现在可以计算 x
。输入:
x
irb 显示:
=> 18
但要小心。尝试输入:
x = (10
+ (2*4))
这次的结果是:
=> 8
事实上,这是正常的 Ruby 行为。这可以通过以下事实来解释:换行符作为终止符,而 +
运算符在开始新行时充当一元运算符(它只是声明后面的表达式为正)。你将在本章末尾的深入探索中找到更全面的解释。现在,请注意,当一次输入一行时,换行符的位置很重要!使用 irb 时,你可以判断解释器是否认为你已结束输入语句。如果你这样做,则显示以 ">"
结尾的普通提示:
irb(main):013:1>
如果语句不完整,则提示以星号结束:
irb(main):013:1*
在上面的两个示例中,当你输入没有加号的第一行时会显示 >
提示符:
x = ( 10
但是当你使用加号输入时会显示 *
提示符:
x = ( 10 +
前一种情况表明,irb 认为该语句是完整的;后一种情况表明它正在等待语句被完成。
如果你希望,可以将 Ruby 程序加载到 irb 中,方法是将程序名称传递给它:
irb myprogram.rb
你也可以使用各种选项调用它,如下一页所示:
Usage: irb.rb [options] [programfile] [arguments]
选项 | 解释说明 |
---|---|
-f | 禁止阅读 ~/.irbrc |
-m | Bc 模式(加载可用的 mathn,fraction 或 matrix) |
-d | 将 $DEBUG 设置为 true(与 `ruby -d’ 相同) |
-r load-module | 与 `ruby -r’ 相同 |
-I path | 指定 $LOAD_PATH 目录 |
—inspect | 使用 `inspect’ 作为输出(默认除了 bc 模式) |
—noinspect | 不使用 inspect 输出 |
—readline | 使用 Readline 扩展模块 |
—noreadline | 不使用 Readline 扩展模块 |
—prompt | 提示模式,prompt-mode |
—prompt-mode | prompt-mode 切换提示模式(prompt mode)。预定义的提示模式是“默认”,“简单”,“xmp” 和 “inf-ruby” 的 |
—inf-ruby-mode | 在 emacs 上使用适合 inf-ruby-mode 的提示符。 禁止 —readline |
—simple-prompt | 简单的提示模式 |
—noprompt | 没有提示模式 |
—tracer | 显示每次执行命令的轨迹 |
—back-trace-limit | 显示回溯顶部 n 个和尾部 n 个。默认值价值是 16。 |
—irb_debug n | 将内部调试级别设置为 n(不适合常用) |
-v, —version | 打印 irb 的版本 |
你可以通过在命令行输入以下内容来查看这些选项的列表:
irb --help
你可以通过在提示符处输入单词 quit
或按 CTRL+BREAK 结束 irb 会话。
虽然 irb 可能对尝试某些代码很有用,但它并不提供调试程序所需的所有功能。但是,Ruby 提供了一个命令行调试器。