scala currying-例子2

object CurryingTest {

  def summary() {
  println("---summary start---")
  println("--- summary end ---")
  }
 
  def details() {
    println("---start usage start---")
  println("--- start usage end ---")
 
  println("---restart usage start---")
  println("--- restart usage end ---")
 
  println("---stop usage start---")
  println("--- stop usage end ---")
 
  println("---status usage start---")
  println("--- status usage end ---")
  }
 
  def usage[T](summary: => T)(details: => T): Unit = {
    println("---usage start---")
    summary
    println("-----------------")
   
   
    details
    println("--- usage end ---")
  }

  def main(args: Array[String]) {
  usage(summary())(details())
  println("=================")
 
  usage(summary()) {
      println("===start usage start===")
    println("=== start usage end ===")
 
    println("===restart usage start===")
    println("=== restart usage end ===")
 
    println("===stop usage start===")
    println("=== stop usage end ===")
 
    println("===status usage start===")
    println("=== status usage end ===")
    }
  }
}



>scalac -d classes  CurryingTest.scala

>scala CurryingTest

---usage start---
---summary start---
--- summary end ---
-----------------
---start usage start---
--- start usage end ---
---restart usage start---
--- restart usage end ---
---stop usage start---
--- stop usage end ---
---status usage start---
--- status usage end ---
--- usage end ---
=================
---usage start---
---summary start---
--- summary end ---
-----------------
===start usage start===
=== start usage end ===
===restart usage start===
=== restart usage end ===
===stop usage start===
=== stop usage end ===
===status usage start===
=== status usage end ===
--- usage end ---

猜你喜欢

转载自lobin.iteye.com/blog/2347235