Exercices#
Implémenter une calculatrice avec des opérations personnalisées#
-
Définir les fonctions de base : Créez quatre fonctions séparées pour chaque opération de base :
add
,subtract
,multiply
,divide
. Chacune doit prendre deux arguments de typefloat64
et retourner un résultat de typefloat64
.Exemple de code pour la fonction
add
:* Extension avec des opérations personnalisées : Créez des fonctions supplémentaires pour d'autres opérations, comme le calcul du pourcentage, le carré, la racine carrée etc. Le même format de fonction peut être utilisé, avec des modifications selon les besoins.func add(x float64, y float64) float64 { return x + y }
-
Utiliser des interfaces pour gérer différentes opérations : Définir une interface
Calculator
qui définit une méthodeCalculate
qui prend deuxfloat64
et retourne unfloat64
. Cela permettra à différentes structures implémentant cette interface de fournir leur propre version de la méthodeCalculate
.Exemple de code pour l'interface
Calculator
:type Calculator interface { Calculate(x float64, y float64) float64 }
-
Tests et validation de la calculatrice : Utiliser le package de test intégré de Go (
testing
) pour écrire des tests unitaires pour chaque fonction de calcul. Pour exécuter les tests, utilisez la commandego test
.Exemple de code pour un test de la fonction
add
:func TestAdd(t *testing.T) { result := add(2, 3) if result != 5 { t.Errorf("Expected 5, got %f", result) } }
Créer une bibliothèque pour lire et écrire des fichiers CSV avec une gestion d'erreurs robuste#
-
Lire des fichiers CSV avec le package "encoding/csv" : Utilisez la fonction
csv.NewReader
pour créer un nouvel objet Reader, qui peut être utilisé pour lire les données à partir d'un fichier CSV.Exemple de code pour lire un fichier CSV :
file, err := os.Open("data.csv") if err != nil { log.Fatal(err) } reader := csv.NewReader(file) records, err := reader.ReadAll() if err != nil { log.Fatal(err) }
- Gestion des erreurs lors de la lecture des fichiers CSV : Lorsque vous lisez un fichier CSV, vérifiez toujours les erreurs retournées par les fonctions
os.Open
etreader.ReadAll
. Si une erreur est détectée, utilisezlog.Fatal
pour la signaler et arrêter le programme.
-
Écrire des fichiers CSV avec le package "encoding/csv" : Utilisez la fonction
csv.NewWriter
pour créer un nouvel objet Writer, qui peut être utilisé pour écrire des données dans un fichier CSV.Exemple de code pour écrire dans un fichier CSV : ``` file, err := os.Create("output.csv") if err != nil { log.Fatal(err) } writer := csv.NewWriter(file) writer.Write([]string{"Field1", "Field2", "Field3"}) writer.Flush() if err := writer.Error(); err != nil { log
.Fatal(err) } ```
- Gestion des erreurs lors de l'écriture des fichiers CSV : Après avoir écrit les données dans un fichier CSV avec
writer.Write
etwriter.Flush
, vérifiez toujours l'erreur retournée parwriter.Error
. Si une erreur est détectée, utilisezlog.Fatal
pour la signaler et arrêter le programme.