Sublime文本无法理解gets.chomp
我使用Sublime Text在ruby中编写了这个简单的程序,出于某种原因,如果我使用Sublime文本内置系统构建它,那么我得到以下错误
`deposit': undefined method `chomp' for nil:NilClass (NoMethodError)
如果我使用cmd运行它,它运行得很好。
class BankAccount def initialize(name) @transactions = [] @balance = 0 end def deposit print "How much do you want to deposit?" amount = gets.chomp @balance += amount.to_f puts "$#{amount} is deposited" end def show_balance puts "Your balance is #{@balance}" end end bank_account = BankAccount.new("Rohit Begani") bank_account.class # => BankAccount bank_account.deposit bank_account.show_balance
Sublime无法自行处理交互式输入。 您可以通过SublimeREPL运行脚本,也可以创建自定义构建系统以打开命令提示符,然后运行代码。 幸运的是,这并不太难。 在Sublime中创建一个具有以下内容的新文件:
{ "cmd": ["start", "cmd", "/k", "c:/ruby193/bin/ruby.exe", "$file"], "selector": "source.ruby", "shell": true, "working_dir": "$file_dir" }
将其保存为Packages/User/Ruby_cmd.sublime-build
,其中Packages
是选择Preferences -> Browse Packages...
时打开的目录。 选择Tools -> Build System -> Ruby_cmd
,然后使用Ctrl B运行文件。
这应该适用于XP上的所有Windows版本。 它不适用于OSX或Linux,因为它们没有start
和cmd
程序……