填鸭子模式,也就是规范了传入的参数为类时,此类需要有制定的方法。
# 这里传入closeAble类,类需要有close方法
def withClose(closeAble: { def close(): Unit },
op: { } => Unit) {
closeAble.close()
}
# 包含close方法
class Connection {
def close() = println("close Connection")
}
val conn: Connection = new Connection()
withClose(conn, conn =>
println("do something with Connection"))