Они не делают Объектно-ориентированный язык лучше. Они делают практические языки более практичными.
, Если Вы принимаетесь за решение проблемы с молотком OO - представляют все как взаимодействия между объектами - тогда, закрытие не имеет никакого смысла. На основанном на классах языке OO закрытия являются заполненными дымом задними комнатами, где материал сделан, но никто не говорит об этом впоследствии. Концептуально, это отвратительно.
На практике, это чрезвычайно удобно. Я действительно не хочу определять новый тип объекта содержать контекст, установить, "действительно наполняют" метод для него, инстанцируют его и заполняют контекст..., я просто хочу сказать компилятор, "посмотрите, посмотрите то, к чему у меня есть доступ прямо сейчас? Это - контекст, который я хочу, и вот код, я хочу использовать его для - держатся за это для меня, 'пока мне не нужен он".
Фантастический материал.
Код date.to_time.to_i
должен работать нормально. Сеанс консоли Rails ниже показывает пример:
>> Date.new(2009,11,26).to_time
=> Thu Nov 26 00:00:00 -0800 2009
>> Date.new(2009,11,26).to_time.to_i
=> 1259222400
>> Time.at(1259222400)
=> Thu Nov 26 00:00:00 -0800 2009
Обратите внимание, что промежуточный объект DateTime находится в местном времени, поэтому временная метка может отличаться от ожидаемой на несколько часов. Если вы хотите работать в формате UTC, вы можете использовать метод DateTime «to_utc».
Когда я пробую это, я получаю следующее:
>> Date.today.to_time.to_i
=> 1259244000
>> Time.now.to_i
=> 1259275709
Разница между этими двумя числами связана с тем, что Date
не хранит часы, минуты или секунды текущего времени. Преобразование даты
в время
приведет к полуночи этого дня.