mirror of
https://github.com/bootdotdev/fcc-learn-golang-assets.git
synced 2025-12-18 03:01:16 +00:00
98 lines
1.6 KiB
Go
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,
|
|
},
|
|
})
|
|
}
|