Custom Operators in Swift

Swift Advanced Operators

Posted on 04 May 2020 . 2 min read


Swift provides a very useful feature which is to define your own custom operators. It is a very confusing topic in the beginning but it is very powerful to use. It increases our code readability and provides a very clear and concise way to write code.


You can declare custom operators by defining static type method inside an extension. First of all, you have to decide your operator type that is it prefix, infix or postfix.


Prefix Operators

You can declare prefix operator with prefix modifier before the func keyword.

extension String {
     static prefix func !! (name: String) -> String {
           return "Hello " + name
     }
}
print(!!"Gurjit")
//will print Hello Gurjit


In the above example:

  • First of all, implements extension String
  • Then, defines prefix operator !! and this method started with the static keyword
  • The static method takes one string argument called name
  • Finally, return string after concatenating name argument with “Hello”


Infix Operators

Infix operators are different than prefix operators and postfix operators. In Infix operators we have to define its precedence and associativity.


We are not talking about precedence and associativity in this article but if you want an explanation for this topic please go-ahead to this article

infix operator ^^: MultiplicationPrecedence
extension Int {
      static func ^^ (num: Int, power: Int) -> Int {
           return Int(pow(Double(num), Double(power)))
      }
}
print(5 ^^ 2)


In the above example,

  • First, defines a custom infix operator ^^ which belongs to MultiplicationPrecedence group
  • Then, implements extension Int
  • Defines static function ^^ which takes two parameters num and power and return the power of the number


Postfix Operators

You can declare postfix operator with postfix modifier before the func keyword.

extension Double {
       static postfix func % (percentage: Double) -> Double {
              return (Double(percentage) / 100)
       }
}
print(30%)
//will print 0.3


In the above example:

  • First of all, implements extension Double
  • Then, defines postfix operator % and this method started with the static keyword
  • The static method takes one string argument called percentage
  • Finally, return double after calculating the percentage


Conclusion

As the examples show custom operators are very useful to reduce code duplication and provides a very clean way to write code.

It’s very handy to write custom operators to write robust code when working in teams, that code is understood by others.


Don’t hesitate to contact me if you have any questions or queries. Follow me on twitter @gurjitpt for any updates.

Thanks!


Share this article



Written By

Generic placeholder image

Gurjit Singh

I’m Computer Science graduate and an iOS Engineer who writes about Swift and iOS development. Follow me for more updates:


Discover articles by topics

SwiftUI Class Struct Networking XCode NSCache Enum Optionals Property Observers Closures Guard Reviews StoreKit App Store Algorithms Testing Operators Protocol Extensions Weak Unowned SwiftData WWDC23 GCD API Admob SwiftLint Lottie Foreach Objective-C UIKit NavigationSplitView

Related Articles


String Concatenation in Swift: A Comprehensive Guide

In any programming language, working with strings is essential, and Swift is no different.Whether you are building iOS apps......

2024-10-17 . 3 min read     String Concatenation

Read More »

Integrating SwiftUI with UIKit Using UIHostingController

With the introduction of SwiftUI, Apple has provided developers with a modern way to build user interfaces across all Apple platforms....

2024-07-09 . 3 min read     UIHostingController

Read More »

Deep Dive into Autorelease Pools in Swift

In the realm of software development, memory management plays a crucial role in ensuring the efficient allocation and deallocation of memory...

2024-01-28 . 4 min read     Swift Autorelease

Read More »

Swift enum equatable: with or without associated values

Swift enums provide a powerful way to model a set of related values. Enums can be equipped with associated values, allowing them to represen...

2024-01-24 . 3 min read     Swift Enums

Read More »

How to create Date Picker in SwiftUI

Use a DatePicker when creating a view that enables users to choose both a calendar date and, if needed, a specific time.In SwiftUI, you can ...

2024-01-16 . 2 min read     SwiftUI DatePicker

Read More »

Getting started with Swiftlint to enforce Swift style

SwiftLint is a tool that ensures Swift code adheres to defined style guidelines. It automates code review by identifying and suggesting impr...

2023-12-29 . 4 min read     Swift SwiftLint

Read More »