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