【发布时间】:2018-03-08 18:04:00
【问题描述】:
有没有办法在不返回新对象的情况下更改 Date 对象的月份?
因为Date.now.change 和Date.now += 1.month 返回新的日期对象。
【问题讨论】:
-
为什么首先需要这个?
标签: ruby date activesupport
有没有办法在不返回新对象的情况下更改 Date 对象的月份?
因为Date.now.change 和Date.now += 1.month 返回新的日期对象。
【问题讨论】:
标签: ruby date activesupport
不,“所有日期对象都是不可变的”参见https://ruby-doc.org/stdlib-2.5.0/libdoc/date/rdoc/Date.html
【讨论】:
所有日期对象都是不可变的;因此不能修改自己。
如果你真的想要看起来可变的日期对象,你可以使用Delegator 编写一个包装器。它将添加 setter 方法并将新的 Date 对象捕获为新的委托。
但你真的应该重组以使用不可变对象。
【讨论】: