Loaner Pattern in Scala

Viewed 11887

Scala in Depth demonstrates the Loaner Pattern:

def readFile[T](f: File)(handler: FileInputStream => T): T = {
  val resource = new java.io.FileInputStream(f)
  try {
    handler(resource)
  } finally {
      resource.close()
  }
}

Example usage:

readFile(new java.io.File("test.txt")) { input =>
   println(input.readByte)
}

This code appears simple and clear. What is an "anti-pattern" of the Loaner pattern in Scala so that I know how to avoid it?

2 Answers
Related