2019-08-23 11:03:51 +03:00
|
|
|
// Copyright © 2018 Inanc Gumus
|
|
|
|
// Learn Go Programming Course
|
|
|
|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
|
|
|
//
|
2019-10-30 19:34:44 +03:00
|
|
|
// For more tutorials : https://learngoprogramming.com
|
|
|
|
// In-person training : https://www.linkedin.com/in/inancgumus/
|
|
|
|
// Follow me on twitter: https://twitter.com/inancgumus
|
2019-08-23 11:03:51 +03:00
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"math/rand"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
// RUN IT WITH ALL THE FILES IN THE DIRECTORY LIKE SO:
|
|
|
|
// go run .
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
func main() {
|
|
|
|
rand.Seed(time.Now().UnixNano())
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
var (
|
|
|
|
blender Blender
|
|
|
|
player Player
|
|
|
|
kettle Kettle
|
|
|
|
mixer Mixer
|
|
|
|
)
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
socket := &Socket{100}
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
fmt.Printf("Socket's available power is %d kW.\n", socket.power)
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
if err := socket.Plug(blender); err != nil {
|
|
|
|
fmt.Println("Blender cannot be powered up:", err)
|
|
|
|
}
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
if err := socket.Plug(player); err != nil {
|
|
|
|
fmt.Println("Player cannot be powered up:", err)
|
|
|
|
}
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
if err := socket.Plug(kettle); err != nil {
|
|
|
|
fmt.Println("Kettle cannot be powered up:", err)
|
|
|
|
}
|
2019-08-23 11:03:51 +03:00
|
|
|
|
2019-09-27 11:28:24 +03:00
|
|
|
if err := socket.Plug(mixer); err != nil {
|
|
|
|
fmt.Println("Mixer cannot be powered up:", err)
|
|
|
|
}
|
2019-08-23 11:03:51 +03:00
|
|
|
|
|
|
|
fmt.Printf("Socket's available power is %d kW.\n", socket.power)
|
|
|
|
}
|