2012-01-19 19 views

Respuesta

16

La diferencia es que:

Date.today + 1 

es una suma de dos valores numéricos y

Date.today +1 

es una llamada al método today con el parámetro sg (día de la reforma del calendario) con valor +1

La mejor manera de examinar esto es parchear mono el método original con salida de depuración en cluded Ver este script como ejemplo:

require 'date' 

class Date 

    def self.today(sg=ITALY) 
    puts "ITALY default("+sg.to_s+")" if sg==ITALY 
    puts sg unless sg==ITALY 
    jd = civil_to_jd(*(Time.now.to_a[3..5].reverse << sg)) 
    new0(jd_to_ajd(jd, 0, 0), 0, sg) 
    end 

end 

puts "- Addition:" 
Date.today + 1 
puts "- Parameter:" 
Date.today +1 

Esto imprimirá la siguiente salida de la consola:

- Addition: 
ITALY default(2299161) 
- Parameter: 
1 
4

Sí, espacio en blanco hace materia en Rubí, contrariamente a la creencia popular. Por ejemplo, foo bar no es lo mismo que foobar.

En este caso particular,

Date.today + 1 

es la misma que

Date.today().+(1) 

Considerando

Date.today +1 

es el mismo que

Date.today(+1) 

que es lo mismo que

Date.today([email protected]()) 
Cuestiones relacionadas