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...