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

Construis une Calculator complète en utilisant tout ce que tu as appris :

  • Structure (champs exportés) : définis Calculator avec Name (string), LastResult (float64) et History (int)
  • Fonction constructeur : NewCalculator(name string) renvoie *Calculator. Si name est vide, utilise par défaut "Unnamed"
  • Récepteur de valeur : GetInfo() renvoie le nom de la calculatrice sous forme de chaîne formatée
  • Récepteurs pointeurs : Add, Subtract et Multiply enregistrent chacun le résultat dans LastResult et incrémentent History
  • Divide : récepteur pointeur renvoyant (float64, string). En cas de division par zéro, renvoie 0 et "Error: division by zero" sans mettre à jour History ni 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