[ruby-core:120970] [Ruby master Feature#19555] Allow passing default options to `Data.define`
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2025-02-13 08:43:05 UTC
List:
ruby-core #120970
Issue #19555 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Closed As a programmer, I can imagine the convenience of this default value for Data attributes, but as @zverok mentioned, I can also imagine the trouble caused by this (just like Python's famous optional argument issue). So as a conclusion, we do not adopt this proposal. Matz. ---------------------------------------- Feature #19555: Allow passing default options to `Data.define` https://bugs.ruby-lang.org/issues/19555#change-111869 * Author: p8 (Petrik de Heus) * Status: Closed ---------------------------------------- Defining a subclass of `Data` with default attributes can currently be done by overriding `intialize`: ```ruby class Point < Data.define(:x, :y, :z) def initialize(x:, y:, z: 0) = super end p Point.new(1, 2) #=> #<data Point x=1, y=2, z=0> ``` It would be nice if we could do it in `define` as well: ```ruby Point = Data.define(:x, :y, z: 0) ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- [email protected] To unsubscribe send an email to [email protected] ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/