有没有办法在不返回新对象的情况下更改Date
对象的月份?
因为Date.now.change
和Date.now += 1.month
会返回新的日期对象。
答案 0 :(得分:2)
不,“所有日期对象都是不可变的”,请参阅https://ruby-doc.org/stdlib-2.5.0/libdoc/date/rdoc/Date.html
答案 1 :(得分:1)
所有日期对象都是不可变的;因此无法修改自己。
如果你真的想要看起来可变的日期对象,你可以使用Delegator编写一个包装器。它将添加setter方法并将新Date对象捕获为新委托。
但是你应该重组以使用不可移动的对象。