Maison >développement back-end >Golang >Comment éviter la duplication de code au sein des fonctions Golang ?

Comment éviter la duplication de code au sein des fonctions Golang ?

WBOY
WBOYoriginal
2024-04-12 11:24:02602parcourir

Pour éviter la duplication de code dans les fonctions Go, vous pouvez utiliser les méthodes suivantes : Utiliser des fonctions en ligne : intégrer le corps de la fonction dans l'appel de fonction et réduire le nombre de lignes de code. Utiliser des fonctions anonymes : définissez des fonctions sans nom qui peuvent être exécutées immédiatement ou transmises à d'autres fonctions sans nommer ni appeler. Créez une bibliothèque d'extensions : encapsulez la logique commune et importez le même bloc de code dans plusieurs fonctions pour réaliser la réutilisation du code.

Comment éviter la duplication de code au sein des fonctions Golang ?

Comment éviter la duplication de code dans les fonctions Go

Introduction

Lors de l'écriture du code Go, vous pouvez rencontrer une duplication de code, ce qui rend le code difficile à maintenir et sujet aux erreurs. Pour éviter la duplication de code, vous pouvez utiliser plusieurs fonctionnalités fournies par Go.

Utilisation des fonctions en ligne

Les fonctions en ligne vous permettent d'intégrer le corps d'une fonction dans un appel à une autre fonction. Cela élimine le besoin de créer des fonctions distinctes, réduisant ainsi les lignes de code et les erreurs potentielles.

func main() {
    fmt.Println(sum(1, 2))
}

func sum(a, b int) int {
    return a + b
}

Utiliser des fonctions anonymes

Les fonctions anonymes vous permettent de définir une fonction sans nom qui peut être exécutée immédiatement ou passée à une autre fonction. Cela élimine le besoin de nommer la fonction et de l'appeler.

func main() {
    fmt.Println(func(a, b int) int { return a + b }(1, 2))
}

Créez votre propre bibliothèque d'extensions

Si vous utilisez souvent le même bloc de code pour plusieurs fonctions, vous pouvez envisager de créer votre propre bibliothèque d'extensions et de l'importer dans votre programme. Cela permet d’encapsuler la logique commune et de simplifier le code.

// utils.go
package utils

import "fmt"

// Sum returns the sum of two integers.
func Sum(a, b int) int {
    return a + b
}

// main.go
package main

import "github.com/username/customlib/utils"

func main() {
    fmt.Println(utils.Sum(1, 2))
}

Cas pratique

Supposons que vous ayez une fonction qui doit effectuer plusieurs opérations sur la chaîne d'entrée, telles que le découpage, la conversion des majuscules et des minuscules. Vous ne souhaitez pas diviser ces opérations en fonctions distinctes, mais vous souhaitez éviter la duplication de code.

Vous pouvez éviter cela en utilisant une fonction anonyme :

func formatString(s string) string {
    f := func(op string) string {
        switch op {
        case "trim":
            return strings.TrimSpace(s)
        case "upper":
            return strings.ToUpper(s)
        case "lower":
            return strings.ToLower(s)
        default:
            return s
        }
    }

    return f("trim") + f("upper") + f("lower")
}

Cette fonction peut être appelée comme suit :

s := "  Hello, World!  "
fmt.Println(formatString(s))
// 输出:
// HELLO, WORLD!hello, world!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn