In Ruby, a set can be initialized by Set[1,2,3] So can an array: Array[1,2,3]
Is it possible to write some code to do the same thing to my own classes? Or it's just a language feature for only a few built-in classes?
In Ruby, foo[bar, baz] is just syntactic sugar for foo.[](bar, baz). All you need is a method named [].
By the way: you just need to look at the documentation, e.g. for Set:
[](*ary)Creates a new set containing the given objects.
That's the documentation right there.
Basically, all you need is
class Foo
  def self.[](*args, &block)
    new(*args, &block)
  end
end
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With