首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby有‘’的版本吗?

Ruby有‘’的版本吗?
EN

Stack Overflow用户
提问于 2018-03-16 11:17:32
回答 2查看 111关注 0票数 0

我已经找了很长一段时间了,但是我还没有在Ruby中找到像python-i标志那样的任何东西。

如果我正在测试一些东西,我的常见行为是使用一个python标志运行未完成的-i脚本,这样我就可以看到和播放每个变量中的值。

如果我尝试irb <file>,它仍然在EOF终止,显然ruby <file>也不能工作。是否有我缺少的命令行标志,或者其他实现此功能的方法?

编辑:添加了我所说的功能类型的解释。

Python中的当前行为

file.py

代码语言:javascript
复制
a = 1

命令提示符

代码语言:javascript
复制
$ python -i file.py
>>> a
1

如您所见,变量a的值在控制台中也是可用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-16 11:22:03

是否有我缺少的命令行标志,或者其他实现此功能的方法?

是的,两者都有。我会报道“另一条路”。

从ruby2.5开始,您可以在代码的某个位置放置一个binding.irb,然后程序就会进入交互式控制台。

代码语言:javascript
复制
% cat stop.rb
puts 'hello'

binding.irb

然后

代码语言:javascript
复制
% ruby stop.rb
hello

From: stop.rb @ line 3 :

    1: puts 'hello'
    2:
 => 3: binding.irb
irb(main):001:0> 

在很长一段时间内,使用pry是可能的。但现在它在标准包装里了。

票数 4
EN

Stack Overflow用户

发布于 2018-03-16 11:29:51

您可以使用irb -r ./filename.rb (-r表示"require"),它基本上应该与python -i ./filename.py一样。

编辑以更好地回答精炼的问题:

实际上,irb -r ./filename.rb所做的工作相当于运行irb并随后运行irb(main):001:0> require './filename.rb'。因此,来自filename.rb的局部变量不会在检查范围内结束。

python -i ./filename.py似乎相当于将binding.irb添加到文件的最后一行,然后使用ruby ./filename.rb运行它。对于红宝石来说,似乎没有一种能达到这种精确行为的单一衬里。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49319484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档