Bank example added and the value calculated

This commit is contained in:
Mert Gör 🇹🇷 2024-01-23 05:31:02 +03:00
parent 80283450c6
commit 6e181a1024
Signed by: hwpplayer1
GPG Key ID: 03E547D043AB6C8F
2 changed files with 55 additions and 0 deletions

54
interfaces/demo2.go Normal file
View File

@ -0,0 +1,54 @@
package interfaces
import "fmt"
type Mortgage struct{
creditPaymentTotal float64
address string
rate float64
}
type Car struct{
creditPaymentTotal float64
carInfo string
rate float64
}
type CreditCalculator interface{
Calculate() float64
}
func (m Mortgage) Calculate() float64{
return m.creditPaymentTotal * m.rate / 12
}
func (c Car) Calculate() float64{
return c.creditPaymentTotal * c.rate / 12
}
func CalculateMonthlyPayment(credits []CreditCalculator) float64{
paymentTotal:= 0.0
for i := 0; i < len(credits); i++ {
paymentTotal = paymentTotal + (credits[i].Calculate())
}
return paymentTotal
}
func Demo2() {
credit1:= Mortgage{rate:10, creditPaymentTotal: 100000, address: "Ankara"}
credit2:= Mortgage{rate:12, creditPaymentTotal: 50000, address: "İstanbul"}
credit3:= Car{rate:15, creditPaymentTotal: 60000, carInfo:"Polo"}
credits:= []CreditCalculator{credit1, credit2, credit3}
total:= CalculateMonthlyPayment(credits)
fmt.Println("Total payment", total)
}

View File

@ -78,4 +78,5 @@ func main() {
fmt.Println("Multiply Result : ", multiply)
interfaces.Demo1()
interfaces.Demo2()
}