Fonctions avec Retour

Découvrez comment créer des fonctions capables de renvoyer une valeur que vous pourrez utiliser pour la suite de votre code.

Voir sur YouTube

Les fonctions avec retour en Swift sont des fonctions qui, après avoir exécuté leur code, renvoient une valeur. Cette valeur peut être de n'importe quel type (comme Int, String, Bool, etc.), et peut être utilisée immédiatement ou stockée dans une variable.

Déclaration d'une Fonction avec Retour

Pour définir une fonction avec retour, vous spécifiez le type de la valeur retournée après la flèche -> à la fin de la déclaration de la fonction. Le type de retour est obligatoire si la fonction renvoie une valeur.

Syntaxe :

func functionName(parameters) -> ReturnType {
    // Code à exécuter
    return value
}
  • functionName : Le nom de la fonction.
  • parameters : Les paramètres que la fonction accepte.
  • ReturnType : Le type de la valeur que la fonction retourne.
  • return value : La valeur que la fonction renvoie. Cette valeur doit correspondre au type spécifié dans ReturnType.

Exemples de Fonctions avec Retour

Fonction qui retourne un entier

func multiply(a: Int, b: Int) -> Int {
    return a * b
}
let result = multiply(a: 5, b: 10)
print(result)  // Affiche : 50

Dans cet exemple, la fonction multiply accepte deux paramètres a et b, multiplie ces deux valeurs et retourne le résultat. Le type de retour est Int, et la valeur retournée est a * b.

Fonction qui retourne une chaîne de caractères

func greet(name: String) -> String {
    return "Hello, \(name)!"
}
let greeting = greet(name: "Alice")
print(greeting)  // Affiche : "Hello, Alice!"

Ici, la fonction greet accepte un paramètre name de type String et retourne une chaîne de caractères personnalisée. Le type de retour est String.

Utilisation de la Valeur de Retour

La valeur de retour d'une fonction peut être utilisée de différentes manières :

  • Stockée dans une variable : Comme dans les exemples ci-dessus, la valeur retournée par la fonction est souvent stockée dans une variable.
  • Utilisée directement : La valeur retournée peut également être utilisée directement dans une expression.

Exemple :

print(multiply(a: 3, b: 4))  // Affiche : 12

Ici, la valeur retournée par la fonction multiply est directement passée à la fonction print.

Fonctions avec Plusieurs Valeurs de Retour (Tuples)

Swift permet également de retourner plusieurs valeurs en utilisant des tuples. Un tuple est un groupe de plusieurs valeurs combinées en une seule.

Exemple :

func getUserInfo() -> (name: String, age: Int) {
    return ("Alice", 30)
}
let userInfo = getUserInfo()
print("Name: \(userInfo.name), Age: \(userInfo.age)")
// Affiche : "Name: Alice, Age: 30"

Dans cet exemple, la fonction getUserInfo retourne un tuple contenant un String et un Int. Le tuple est ensuite décomposé pour accéder à ses éléments.

Fonctions avec Retour Optionnel

Il est possible de déclarer une fonction qui retourne une valeur optionnelle. Cela signifie que la fonction peut soit retourner une valeur, soit retourner nil.

Exemple :

func findUser(byID id: Int) -> String? {
    let users = ["Alice", "Bob", "Charlie"]
    if id >= 0 && id < users.count {
        return users[id]
    } else {
        return nil
    }
}
if let user = findUser(byID: 1) {
    print("User found: \(user)")
} else {
    print("User not found")
}
// Affiche : "User found: Bob"

Ici, la fonction findUser retourne une chaîne de caractères optionnelle String?. Si l'ID est valide, elle retourne le nom d'utilisateur correspondant. Sinon, elle retourne nil.

Fonctions avec Types de Retour Complexes

Une fonction peut aussi retourner des collections (comme des tableaux ou des dictionnaires) ou d'autres types complexes comme des objets.

Exemple :

func getEvenNumbers(from numbers: [Int]) -> [Int] {
    var evenNumbers: [Int] = []
    for number in numbers {
        if number % 2 == 0 {
            evenNumbers.append(number)
        }
    }
    return evenNumbers
}
let numbers = [1, 2, 3, 4, 5, 6]
let evenNumbers = getEvenNumbers(from: numbers)
print(evenNumbers)  // Affiche : [2, 4, 6]

Dans cet exemple, la fonction getEvenNumbers retourne un tableau d'entiers contenant uniquement les nombres pairs.