1
1
Fork 0
AtomicKotlinCourse/Power Tools/Late Initialization/Exercise 3/task.md

1.1 KiB

Late Initialization (#3)

The starter code provides:

data class Generator(val id: Int)

class Turbine(val id: Int) {
  private lateinit var _generator: Generator
  val generator: Generator
...

Add a get() for generator that checks to see if _generator has been initialized, and if not initializes it before returning _generator. Add a toString() that starts with "Generator $id running: " and then indicates if the generator is running.

The starter code provides:

class PowerPlant(nTurbines: Int = 4) {
  private val turbines: List<Turbine> =
...

Finish the initialization for turbines, then add fun generator(number: Int): Generator which checks to make sure number is in range, then returns the desired generator. Finally, add a status() member function that uses forEach to show the status of each generator in the PowerPlant. The code in main() tests your solution.

This task doesn't contain automatic tests, so it's always marked as "Correct" when you run "Check". Please compare your solution with the one provided!