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