# File lib/slop.rb, line 146
    def argument_value
      return @argument_value if forced
      type = @argument_type.to_s.downcase
      # Check for count first to prefer 0 over nil
      return count if type == 'count'

      value = @argument_value || @options[:default]
      return if value.nil?

      if @argument_type.respond_to?(:call)
        @argument_type.call(value)
      else
        case type
        when 'array'
          arg_value(@argument_value)
        when 'range'
          arg_value(value_to_range(value))
        when 'float'
          arg_value(value.to_s.to_f)
        when 'string', 'str'
          arg_value(value.to_s)
        when 'symbol', 'sym'
          arg_value(value.to_s.to_sym)
        when 'integer', 'int'
          arg_value(value.to_s.to_i)
        else
          value
        end
      end
    end