更改 Date 对象的月份而不返回新日期

Change the month of a Date object without returning a new date

有没有办法在不 return 创建新对象的情况下更改 Date 对象的月份?

因为 Date.now.changeDate.now += 1.month return 新日期对象。

否,"all date objects are immutable"见https://ruby-doc.org/stdlib-2.5.0/libdoc/date/rdoc/Date.html

没有。 From the Date class docs.

All date objects are immutable; hence cannot modify themselves.

如果您真的想要显示可变的日期对象,您可以使用 Delegator 编写一个包装器。它将添加 setter 方法并将新的 Date 对象捕获为新的委托。

但是你真的应该重组以使用免疫对象。