Menu
Coddy logo textTech

Récapitulatif - Calculatrice simple

Fait partie de la section Programmation Orientée Objet du Journey GO de Coddy. Leçon 11 sur 107.

challenge icon

Défi

Difficile

Construisez une Calculator complète en utilisant tout ce que vous avez appris :

  • Struct (Champs Exportés) — Définissez Calculator avec Name (string), LastResult (float64), et History (int)
  • Fonction ConstructeurNewCalculator(name string) retourne *Calculator. Si le nom est vide, utilisez par défaut "Unnamed"
  • Récepteur de Valeur (Value Receiver)GetInfo() retourne le nom de la calculatrice sous forme de chaîne formatée
  • Récepteurs de Pointeur (Pointer Receivers)Add, Subtract, Multiply stockent chacun le résultat dans LastResult et incrémentent History
  • Divide — récepteur de pointeur retournant (float64, string). En cas de division par zéro, retournez 0 et "Error: division by zero" sans mettre à jour History ou LastResult

Essayez vous-même

package main

import "fmt"

func main() {
    var name string
    var a, b float64
    fmt.Scan(&name, &a, &b)

    calc := NewCalculator(name)

    fmt.Println(calc.GetInfo())
    fmt.Printf("History: %d\n", calc.History)

    fmt.Printf("%.0f + %.0f = %.2f\n", a, b, calc.Add(a, b))
    fmt.Printf("%.0f - %.0f = %.2f\n", a, b, calc.Subtract(a, b))
    fmt.Printf("%.0f * %.0f = %.2f\n", a, b, calc.Multiply(a, b))

    result, err := calc.Divide(a, b)
    if err != "" {
        fmt.Println(err)
    } else {
        fmt.Printf("%.0f / %.0f = %.2f\n", a, b, result)
    }

    fmt.Printf("History: %d\n", calc.History)
    fmt.Printf("Last Result: %.2f\n", calc.LastResult)
}

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Go en ligne