Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用IRB时Ruby中最后一个表达式的自动计算_Ruby_Debugging_Ide - Fatal编程技术网

不使用IRB时Ruby中最后一个表达式的自动计算

不使用IRB时Ruby中最后一个表达式的自动计算,ruby,debugging,ide,Ruby,Debugging,Ide,我正在试用ruby,并遵循一些非常有助于学习的教程。使用IRB提示时,最后一个表达式始终按此样式计算: "hello" => "hello" 太棒了!现在,我如何在运行.rb脚本时完成相同的操作?我承认对脚本中的每一行进行评估可能有点奇怪,但在学习时这是非常棒的。 So-无法在集成控制台/终端的其他IDE(或从命令提示符调用.rb脚本)中重现此行为。我试过Aptana,jEdit,RubyMine 我已经读了很多关于可以设置的不同常量的书,比如$DEBUG、$VERBOSE,以及使用一些

我正在试用ruby,并遵循一些非常有助于学习的教程。使用IRB提示时,最后一个表达式始终按此样式计算:

"hello"
=> "hello"
太棒了!现在,我如何在运行.rb脚本时完成相同的操作?我承认对脚本中的每一行进行评估可能有点奇怪,但在学习时这是非常棒的。 So-无法在集成控制台/终端的其他IDE(或从命令提示符调用.rb脚本)中重现此行为。我试过Aptana,jEdit,RubyMine

我已经读了很多关于可以设置的不同常量的书,比如$DEBUG、$VERBOSE,以及使用一些参数调用ruby.exe,但是我似乎在任何地方都找不到它

如果有一个像PowerShell_ISE这样的编辑器,那将是非常棒的,它的强大之处在于它的易用性和运行脚本的简单性

  • 决定要在终端中键入的命令名,以便执行脚本(假设这是
    test\u ruby
  • 确定在编写临时代码时始终使用的文件名(假设这是
    test\u ruby\u file
  • 编写一个名为
    test\u ruby
    的文件,其中包含以下内容:

    #!/usr/bin/env ruby
    
    File.open("path_to_test_ruby_file/test_ruby_file"){|io| p eval(io.read)}
    
  • test\u ruby
    一个可执行状态

  • test\u ruby\u文件中编写一些内容
  • 在终端中,键入
    test\u ruby

  • 你想在屏幕上放点什么吗?或者模拟控制台?我不确定你问的是不是100%清楚。。。但是ruby中的所有东西都返回一个值(这就是IRB所显示的)。假设x=3+4是你的.rb脚本的一行,你可以在它前面加上“puts”,它将输出7。例如,或x=y=3将x和y设置为3@Kansha但是使用
    put
    (和
    warn
    更好,IMO)与运行脚本不同,因为您不需要调用任何东西就可以将输出发送到IRB中的控制台,它只是这样做。IRB必须钩住一个方法或以某种方式将每个调用包装在一个块中。OP只是问如何通过脚本实现这一点。我真的觉得这很有用。哦,很有趣。我从来没有真正想过这点。@iain是的,没错,不知怎么的,IRB自动做到了这一点。问题是如何,以及如何在其他情况下复制这种行为?使用puts不是一回事,因为puts似乎将表达式字符串化,而不是显示与IRB相同的内容。Pro-tip:在列表中使用4空间代码块时,必须添加另一个4空间填充:)@Sergio Tulentsev感谢您的编辑。我还没有完全掌握。我学到了一些新东西。实际上,我一开始就忘了写shebang命令(
    #!/usr/bin/env ruby
    或其他东西)。您介意添加它吗?如果您将目标脚本设置为
    ARGV
    ,并将
    test\u ruby
    文件夹放在您的路径中,那么它不是更通用吗?@Baboon那么您将始终必须将参数名与命令一起传递。那不方便,很好。似乎只有最后一条语句将输出到控制台,而不是所有语句。