Bank example added and the value calculated
This commit is contained in:
parent
80283450c6
commit
6e181a1024
2 changed files with 55 additions and 0 deletions
54
interfaces/demo2.go
Normal file
54
interfaces/demo2.go
Normal 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)
|
||||||
|
|
||||||
|
}
|
1
main.go
1
main.go
|
@ -78,4 +78,5 @@ func main() {
|
||||||
fmt.Println("Multiply Result : ", multiply)
|
fmt.Println("Multiply Result : ", multiply)
|
||||||
|
|
||||||
interfaces.Demo1()
|
interfaces.Demo1()
|
||||||
|
interfaces.Demo2()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue