Generic classes
A generic class (or struct) is constructed on top of one or more unknown types that are only determined later when you're creating an instance of said class. This sounds complex, but you have already used some generic classes before. Array
is the most common one: have you noticed that we always need to specify the type of data the array holds? It isn't enough to say that a given variable is an array – we must say it is an array of strings, or Array(String)
. The Hash
generic class is similar, but this one has two type parameters – the types of the keys and the types of the values.
Let's look at a simple example. Say you want to create a class that holds a value in one of its instance variables, but the value can be of any type. Let's look at a way we can do this:
class Holder(T) def initialize(@value : T) end def get @value end def set(new_value...