【问题标题】:Sublime text can't understand gets.chompsublime text 看不懂gets.chomp
【发布时间】:2013-10-20 08:42:21
【问题描述】:

我使用 Sublime Text 在 ruby​​ 中编写了这个简单的程序,出于某种原因,如果我使用 Sublime text 内置系统构建它,则会收到以下错误

`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

【问题讨论】:

    标签: ruby sublimetext gets chomp


    【解决方案1】:

    Sublime 无法自行处理交互式输入。您可以通过SublimeREPL 运行脚本或创建自定义build system 以打开命令提示符然后运行代码。幸运的是,这并不太难。在 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,然后使用 CtrlB 运行您的文件。

    这应该适用于从 XP 开始的所有 Windows 版本。不过,它不适用于 OSX 或 Linux,因为它们没有 startcmd 程序...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-18
      • 2017-09-21
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多