Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. package main
  2.  
  3. import "fmt"
  4.  
  5. type CarSpecs struct {
  6. horsepower int
  7. torque int
  8. }
  9.  
  10. type Car struct {
  11. make string
  12. model string
  13. price int
  14. specifications CarSpecs
  15. }
  16.  
  17. func createCar(make, model string, price, horsepower, torque int) Car {
  18. _car := Car{}
  19. _carSpecs := CarSpecs{}
  20. _car.make, _car.model, _car.price = make, model, price
  21. _carSpecs.horsepower, _carSpecs.torque = horsepower, torque
  22. _car.specifications = _carSpecs
  23. return _car
  24. }
  25.  
  26. func createCarsArray() []Car {
  27. var _cars []Car
  28. bmwM3 := createCar("BMW", "M3", 75000, 453, 410)
  29. supra := createCar("Toyota", "Supra", 50000, 335, 315)
  30. gsf := createCar("Lexus", "GS F", 85000, 467, 389)
  31. e63s := createCar("Mercedes", "E63s", 130000, 603, 627)
  32. _cars = append(_cars, bmwM3, supra, gsf, e63s)
  33. return _cars
  34. }
  35.  
  36. func returnMostExpensiveCar(_carList []Car) Car {
  37. _expensiveCar := Car{}
  38. for _carIndex := range _carList {
  39. car := _carList[_carIndex]
  40. // check if empty struct
  41. if _expensiveCar == (Car{}) {
  42. _expensiveCar = car
  43. }
  44. if car.price > _expensiveCar.price {
  45. _expensiveCar = car
  46. }
  47. }
  48. return _expensiveCar
  49. }
  50.  
  51. func returnCarWithMostHorsepower(_carList []Car) Car {
  52. _horsepowerCar := Car{}
  53. for _carIndex := range _carList {
  54. car := _carList[_carIndex]
  55. // check if empty struct
  56. if _horsepowerCar == (Car{}) {
  57. _horsepowerCar = car
  58. }
  59. if car.specifications.horsepower > _horsepowerCar.specifications.horsepower {
  60. _horsepowerCar = car
  61. }
  62. }
  63. return _horsepowerCar
  64. }
  65.  
  66. func main() {
  67. cars := createCarsArray()
  68. expensiveCar := returnMostExpensiveCar(cars)
  69. mostHorsepowercar := returnCarWithMostHorsepower(cars)
  70. if expensiveCar == mostHorsepowercar {
  71. fmt.Println("This car is awesome! Buy this one: ", expensiveCar.make, expensiveCar.model)
  72. } else if expensiveCar != mostHorsepowercar {
  73. fmt.Println("Take your pick")
  74. fmt.Println("Most Horsepower: ", mostHorsepowercar.make, mostHorsepowercar.model)
  75. fmt.Println("Most Expensive: ", expensiveCar.make, expensiveCar.model)
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement