以下面的方法为例,然后调用方法:
def count(n)
x=3
y=5
n+=x
n-=y
puts n
end
count(3)
我想知道无论如何当我在我的终端中运行这个脚本时,当它到达实际调用该方法的count(3)行时,而不是简单地输出“n”,是否存在无论如何,我可以通过一个窗口逐行浏览方法,在那里我可以看到我的局部变量(n,x和y),这样我就可以看到“n”的值随着方法在输出最终值之前执行而改变我的终端。
答案 0 :(得分:1)
您可以使用byebug gem完成此操作。
您可以通过简单地插入byebug
行在代码中的任何位置添加断点,也可以通过调用脚本在调试模式下运行整个脚本:
byebug something-awesome.rb
当您进入调试模式时,您可以使用step
命令一次一行地执行代码。
以下是此过程的示例:
[1, 10] in /Desktop/something-awesome.rb
=> 1: def count(n)
2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) step
[2, 11] in /Desktop/something-awesome.rb
2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
=> 11: count(3)
(byebug) step
[1, 10] in /Desktop/something-awesome.rb
1: def count(n)
=> 2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) step
[1, 10] in /Desktop/something-awesome.rb
1: def count(n)
2: x = 3
=> 3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) x
3
请注意,在我跳过第2行(在控制台输出的底部)之后,我现在可以在代码中键入x
以查看x
的值是什么
有关所有可用命令的列表,请查看Byebug文档的commands section。
答案 1 :(得分:0)
我非常喜欢pry宝石。
它是一个非常棒且功能强大的界面,允许您通过实例和类(即cd User.first
),列表方法(ls
)更改目录,甚至可以与shell进行交互({{ 1}}) - 所有这一切都可以从你想要的地方放一个简单的shell-mode; .pwd
。
另外值得注意的是,Ruby 2.5即将发布binding.pry
运费 - 我还没有看过它,但这本来就是本机的,并希望不再需要第三方宝石。