Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby 升华文本无法理解gets.chomp_Ruby_Sublimetext_Gets_Chomp - Fatal编程技术网

Ruby 升华文本无法理解gets.chomp

Ruby 升华文本无法理解gets.chomp,ruby,sublimetext,gets,chomp,Ruby,Sublimetext,Gets,Chomp,我用ruby用升华文本编写了这个简单的程序,出于某种原因,如果我使用升华文本内置系统构建它,那么我会得到以下错误 `deposit': undefined method `chomp' for nil:NilClass (NoMethodError) 如果我使用cmd运行它,它会运行得非常完美 class BankAccount def initialize(name) @transactions = [] @balance = 0 end

我用ruby用升华文本编写了这个简单的程序,出于某种原因,如果我使用升华文本内置系统构建它,那么我会得到以下错误

`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无法单独处理交互式输入。您可以通过运行脚本,也可以创建自定义脚本以打开命令提示符,然后运行代码。幸运的是,这并不太难。在Sublime中创建包含以下内容的新文件:

{ cmd:[start,cmd,/k,c:/ruby193/bin/ruby.exe,$file], 选择器:source.ruby, 壳牌:是的, 工作目录:$file\u dir } 将其另存为Packages/User/Ruby_cmd.sublime-build,其中Packages是在选择Preferences->Browse Packages….时打开的目录。。。。选择工具->构建系统->Ruby\u cmd,并使用CtrlB运行文件

这应该适用于XP以后的所有Windows版本。不过,它不适用于OSX或Linux,因为它们没有start和cmd程序