Overloading function in Swift

Function

Functions in Swift are distinguishable by

- parameter label
- parameter type
- return type

so that these are all valid, and works for `subscript` as well

When you specialize a generic type, like `Array<Int>`, you’re actually using a concrete type

Unfortunately, this does not work for NSObject subclass

> Method ‘get()’ with Objective-C selector ‘get’ conflicts with previous declaration with the same Objective-C selector

Generic function

We can overload generic functions as well