How to create a function with an optional parameter in Swift

6 Answers

0 votes
// Default Parameter Value 

import Foundation

func greet(name: String = "Guest") {
    print("Hello, \(name)")
}

greet(name: "Silver Code")   
greet()                



/*
run:

Hello, Silver Code
Hello, Guest

*/

 



answered 2 hours ago by avibootz
0 votes
// Optional Parameter Using String?

import Foundation

func greet(name: String?) {
    let finalName = name ?? "Guest"
    print("Hello, \(finalName)")
}

greet(name: "Silver Code")   
greet(name: nil)       



/*
run:

Hello, Silver Code
Hello, Guest

*/

 



answered 2 hours ago by avibootz
0 votes
// Multiple Optional Parameters With Defaults

import Foundation

func greet(name: String = "Guest", shout: Bool = false) {
    let finalName = shout ? name.uppercased() : name
    print("Hello, \(finalName)!")
}

greet()                          
greet(name: "cpu")              
greet(shout: true)               
greet(name: "gpu", shout: true) 



/*
run:

Hello, Guest!
Hello, cpu!
Hello, GUEST!
Hello, GPU!

*/

 



answered 2 hours ago by avibootz
0 votes
// Optional Parameters Using a Struct

import Foundation

struct GreetOptions {
    var name: String? = nil
    var shout: Bool = false
}

func greet(_ opts: GreetOptions = GreetOptions()) {
    let base = opts.name ?? "Guest"
    let finalName = opts.shout ? base.uppercased() : base
    print("Hello, \(finalName)")
}

greet()                                      
greet(GreetOptions(name: "Lunar"))             
greet(GreetOptions(name: "Zara", shout: true)) 



/*
run:

Hello, Guest
Hello, Lunar
Hello, ZARA

*/

 



answered 2 hours ago by avibootz
0 votes
// Optional Parameter Using Variadic Arguments (...)

import Foundation

func greet(_ names: String...) {
    let name = names.first ?? "Guest"
    print("Hello, \(name)")
}

greet()               
greet("Lunar")        
greet("Zara", "Stellar")  



/*
run:

Hello, Guest
Hello, Lunar
Hello, Zara

*/

 



answered 2 hours ago by avibootz
0 votes
// Optional Parameter Using Variadic Arguments (...)

import Foundation

func greet(_ names: String...) {
    if names.isEmpty {
        print("Hello, Guest")
    } else {
        for name in names {
            print("Hello, \(name)")
        }
    }
}

greet()                    
greet("Lunar")            
greet("Zara", "Stellar")  



/*
run:

Hello, Guest
Hello, Lunar
Hello, Zara
Hello, Stellar

*/

 



answered 2 hours ago by avibootz
...