Quick actions

cmd+k|ctrl+k

Navigation

Languages

Inheritance/Komposisi OOP

Snippet info

Language

Go

Visibility

public

Author

riki.whyudi

Created

2023-11-08T01:07:12.444706Z

Updated

2023-11-08T01:07:20.874025Z

package main

import "fmt"

type Engine struct {
	FuelType string
	Horsepower int
}

type Car struct {
	Brand string
	Model string
	EngineInfo Engine
}

func NewCar(brand, model, fuelType string, horsepower int) *Car {
	engine := Engine{FuelType: fuelType, Horsepower: horsepower}
	return &Car{Brand: brand, Model: model, EngineInfo: engine}
}

func (c Car) Drive() {
	fmt.Printf("Driving %s %s with a %d HP %s engine.\n", c.Brand, c.Model, c.EngineInfo.Horsepower, c.EngineInfo.FuelType)
}

func main() {
	car := NewCar("Toyota", "Camry", "Gasoline", 200)
	car.Drive()
}
INFO