【问题标题】:Change the month of a Date object without returning a new date更改 Date 对象的月份而不返回新日期
【发布时间】:2018-03-08 18:04:00
【问题描述】:

有没有办法在不返回新对象的情况下更改 Date 对象的月份?

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

【问题讨论】:

  • 为什么首先需要这个?

标签: ruby date activesupport


【解决方案1】:

不,“所有日期对象都是不可变的”参见https://ruby-doc.org/stdlib-2.5.0/libdoc/date/rdoc/Date.html

【讨论】:

    【解决方案2】:

    没有。 From the Date class docs.

    所有日期对象都是不可变的;因此不能修改自己。

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

    但你真的应该重组以使用不可变对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多