Wesley de Groot's Blog
Generics in Swift

Generics in Swift

Swift, offers a powerful feature called generics that greatly enhances code reusability, efficiency, and safety. In this blog post, we will dive deep into generics and explore how they can be leveraged in iOS development. Let's get started!

What are Generics?

Generics in Swift enable you to write flexible and reusable code that can work with different types of data. By using generics, you can create functions, classes, and structures that operate uniformly on a variety of types, avoiding code duplication and increasing maintainability.

Generic Types

A generic type can represent any specific type, allowing for maximum flexibility. Let's look at an example of a generic class called Stack that can store and manipulate a stack of elements of any type:

class Stack<T> {
    private var items = [T]()

    func push(item: T) {

    func pop() -> T? {
        return items.popLast()

let stackOfIntegers = Stack<Int>()
let stackOfString = Stack<String>()
let stackOfPerson = Stack<Person>()

In the code snippet above, we define a Stack class with a generic type parameter T. This parameter acts as a placeholder for any type that will be used with the Stack instance. The push function allows us to add elements to the stack, while the pop function removes and returns the topmost element from the stack.

Generic Functions

Similarly, you can define generic functions that can work with different types. Let's look at an example of a generic function for swapping two values:

func swap<T>(_ a: inout T, _ b: inout T) {
    let temp = a
    a = b
    b = temp

In this code snippet, the swap function is defined with a type parameter T using the placeholder <T>. The function takes in two parameters of the same type (a and b) and swaps their values using a temporary variable.


Generics in Swift are a powerful feature that allows you to write flexible and reusable code that can work with different types. By using generics, you can avoid code duplication, increase maintainability, and improve efficiency in your iOS development projects. I hope this blog post has helped you understand the basics of generics in Swift and how you can leverage them in your code.


x-twitter mastodon github linkedin discord threads instagram whatsapp bluesky square-rss sitemap