Example 1
cat Hello.scala //A Standalong object that is used as an entry point for the //application //Best practice : It is recommended to have the Class/Object name // same as the file name...although this is not mandatory in Scala // unlike Java #109 object Hello { //#108. Main method takes 1 Parameter // Array of String... Array[String] def main(args: Array[String]) = { //#108 : Scala implicitly imports members of Packages java.lang & scala // and members of Singleton object named 'Predef'. Some of 'Predef' members // are // 1. println() // 2. assert() etc... println("Hello Scala...") } }
//scalac takes time ; as it has to do some initialization work //every time apart from compiling the given code. try 'fsc' daemon //instead scalac Hello.scala ls Hello$.class Hello.class Hello.scala fsc Hello.scala [raj@Rajkumars-MacBook-Pro ~/del]$jps 10176 MainGenericRunner 10203 Jps [raj@Rajkumars-MacBook-Pro ~/del]$fsc -shutdown [Compile server exited] [raj@Rajkumars-MacBook-Pro ~/del]$jps 10258 Jps [raj@Rajkumars-MacBook-Pro ~/del]$scala Hello Hello Scala...Example 2
//Creating an Application entry point using App Trait #110 //This helps us to avoid creating main explicitly. Arguments //can be accessed through 'args' cat HelloTrait.scala object HelloTrait extends App { println("Hello Trait...") }
[raj@Rajkumars-MacBook-Pro ~/del]$fsc HelloTrait.scala [raj@Rajkumars-MacBook-Pro ~/del]$scala HelloTrait Hello Trait...