|
|
- package main
-
- import (
- "errors"
- "fmt"
- "strings"
- )
-
- type directDeposit struct {
- lastName string
- firstName string
- bankName string
- routingNumber int
- accountNumber int
- }
-
- var (
- ErrInvalidLastName = errors.New("invalid last name")
- ErrInvalidRoutingNumber = errors.New("invalid routing number")
- )
-
- func (d *directDeposit) validateRoutingNumber() error {
-
- if d.routingNumber < 100 {
- panic(ErrInvalidRoutingNumber)
- }
- return nil
-
- }
-
- func (d *directDeposit) validateLastName() error {
-
- d.lastName = strings.TrimSpace(d.lastName)
- if len(d.lastName) == 0 {
- return ErrInvalidLastName
- }
- return nil
-
- }
-
- func (d *directDeposit) report() {
-
- fmt.Println(strings.Repeat("*", 40))
- fmt.Println("Last Name: ", d.lastName)
- fmt.Println("First Name: ", d.firstName)
- fmt.Println("Bank Name: ", d.bankName)
- fmt.Println("Routing Number:", d.routingNumber)
- fmt.Println("Account Number:", d.accountNumber)
-
- }
-
- func main() {
-
- dp := directDeposit{
- "",
- "Abe",
- "XYZ Inc",
- 17,
- 1809,
- }
-
- _ = dp.validateRoutingNumber()
- if err := dp.validateLastName(); err != nil {
- fmt.Println(err)
- }
- dp.report()
-
- }
|