```kotlin interface Greeter { fun greet() } cla...
# announcements
p
Copy code
kotlin
interface Greeter {
  fun greet()
}

class HappyGreeter : Greeter {
  override fun greet() {
    println("hello :)")
  }
}

class SadGreeter : Greeter {
  override fun greet() {
    println("hello :(")
  }
}

class GreeterDelegate (val greeters : List<Greeter>): Greeter by greeters
d
How would this even work? What if
greet
returns something?
m
What would the
greet
function do in
GreeterDelegate
? Call
greet
on all elements of
greeters
?
p
@diesieben07 Right, didn't think of this. My use case is that for analytics I have an interface with multilpe functions for tracking. Now I want to have multiple implementations of that interface for different providers (google analytics, firebase analytics for example)
Hm, this will do:
Copy code
class GreeterDelegate(val greeters: List<Greeter>) {

  fun execute(action: Greeter.()->Unit) {
    greeters.forEach {
      action(it)
    }
  }
}

fun test(delegate: GreeterDelegate) {
  delegate.execute(Greeter::hello)
}
k
Btw how do paste a Snippet here? It only lets me paste it in the channel.
k