// Copyright 2018 Gytis Repečka. All rights reserved. // Use of this source code is governed by a GNU GPL // license that can be found in the LICENSE file. package main import ( "fmt" ) // Define named structures type CarMake struct { makeTitle string countryOfOrigin string } type Car struct { make CarMake model string year int started bool } // Functions (methods) // Receiving a pointer to Car so can modify it func (c *Car) Start() { c.started = true fmt.Printf("Car %s %s says vrooom!\n", c.make.makeTitle, c.model) } func main() { var carMakes []CarMake newCarMake := CarMake{makeTitle: "Toyota", countryOfOrigin: "Japan"} carMakes = append(carMakes, newCarMake) newCarMake = CarMake{makeTitle: "Renault", countryOfOrigin: "France"} carMakes = append(carMakes, newCarMake) newCarMake = CarMake{"Peugeot", "France"} carMakes = append(carMakes, newCarMake) var cars []Car newCar := Car{carMakes[1], "Clio", 1994, false} cars = append(cars, newCar) newCar = Car{carMakes[2], "406", 1997, false} cars = append(cars, newCar) newCar = Car{carMakes[0], "Yaris", 2000, false} cars = append(cars, newCar) fmt.Println("--------------------------") fmt.Println("Make | Model | Country") fmt.Println("--------------------------") for i:=0; i