title: What is the difference between passing arguments to initialize and setting them within initialize?
body: <p>I would like to know the difference between passing arguments in parentheses to <code>initialize</code> vs setting those values manually in <code>initialize</code>?</p>
  
  <pre><code>class CashRegister
    attr_accessor :items, :discount, :total, :last_transaction
  
    def initialize(discount=0)
      @total = 0
      @discount = discount
      @items = []
    end
  end
  </code></pre>