Menu
Coddy logo textTech

Özet - Basit Hesap Makinesi

Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 107.

challenge icon

Görev

Zor

Öğrendiğin her şeyi kullanarak eksiksiz bir Calculator oluştur:

  • Yapı (Dışa Aktarılan Alanlar): Calculator yapısını Name (string), LastResult (float64) ve History (int) alanlarıyla tanımla
  • Kurucu Fonksiyon: NewCalculator(name string), *Calculator döndürür. name boşsa varsayılan olarak "Unnamed" kullan
  • Değer Alıcısı: GetInfo(), hesap makinesinin adını biçimlendirilmiş bir dize olarak döndürür
  • İşaretçi Alıcıları: Add, Subtract ve Multiply, sonucun her birini LastResult içinde saklar ve History değerini artırır
  • Divide: (float64, string) döndüren bir işaretçi alıcısıdır. Sıfıra bölme durumunda, 0 veya "Error: division by zero" değerlerini güncellemeden History ve LastResult döndürür

Kendin dene

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)
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi