Files
bootdotdev-fcc-learn-golang…/course/4-structs/exercises/2-nested_structs/complete.go
wagslane 9be3074de6 first
2023-05-01 15:25:27 -06:00

98 lines
1.6 KiB
Go

package main
import (
"fmt"
)
type messageToSend struct {
message string
sender user
recipient user
}
type user struct {
name string
number int
}
func canSendMessage(mToSend messageToSend) bool {
if mToSend.recipient.number == 0 {
return false
}
if mToSend.sender.number == 0 {
return false
}
if mToSend.recipient.name == "" {
return false
}
if mToSend.sender.name == "" {
return false
}
return true
}
// don't touch below this line
func test(mToSend messageToSend) {
fmt.Printf(`sending "%s" from %s (%v) to %s (%v)...`,
mToSend.message,
mToSend.sender.name,
mToSend.sender.number,
mToSend.recipient.name,
mToSend.recipient.number,
)
fmt.Println()
if canSendMessage(mToSend) {
fmt.Println("...sent!")
} else {
fmt.Println("...can't send message")
}
fmt.Println("====================================")
}
func main() {
test(messageToSend{
message: "you have an appointment tommorow",
sender: user{
name: "Brenda Halafax",
number: 16545550987,
},
recipient: user{
name: "Sally Sue",
number: 19035558973,
},
})
test(messageToSend{
message: "you have an event tommorow",
sender: user{
number: 16545550987,
},
recipient: user{
name: "Suzie Sall",
number: 0,
},
})
test(messageToSend{
message: "you have an party tommorow",
sender: user{
name: "Njorn Halafax",
number: 16545550987,
},
recipient: user{
name: "Sally Sue",
number: 19035558973,
},
})
test(messageToSend{
message: "you have a birthday tommorow",
sender: user{
name: "Eli Halafax",
number: 0,
},
recipient: user{
name: "Whitaker Sue",
number: 19035558973,
},
})
}