Wednesday, August 19, 2009

Imports

Scala's mechanism for importing is analogous to Java's import statements but provides more options. For example import statements can be anywhere in the file and only apply to the scope that they are declared in.
  1. scala>def lineCount = {                                                              
  2.      | import scala.io._ // the '_' character is the wildcard in scala                
  3.      | Source.fromURL("http://www.google.com").getLines.foldRight(0)( (line, acc) => acc + 1 )
  4.      | }
  5. lineCount: Int
  6. scala> lineCount                                                                             
  7. res1: Int = 11
  8. scala>def lineCount = {                                                               
  9.      | import scala.io.Source                                                          
  10.      |  Source.fromURL("http://www.google.com").getLines.foldRight(0)( (line, acc) => acc + 1 )
  11.      | }
  12. lineCount: Int
  13. scala> lineCount
  14. res3: Int = 11
  15. scala>def lineCount = {                                                                                      
  16.      | import scala.io.Source.fromURL // import the fromURL method, only methods from objects can be imported.
  17.      | fromURL("http://www.google.com").getLines.foldRight(0)( (line, acc) => acc + 1 )                       
  18.      | }
  19. lineCount: Int
  20. scala> lineCount
  21. res4: Int = 11
  22. scala>def lineCount = {                                                                                      
  23.      | import scala.io.Source.{fromURL => url} // you can remap imports to another name                       
  24.      | url("http://www.google.com").getLines.foldRight(0)( (line, acc) => acc + 1 )    
  25.      | }
  26. lineCount: Int
  27. scala> lineCount                                                                       
  28. res5: Int = 11
  29. scala>import java.io.{File, FileWriter} // you can import multiple classes in one statement
  30. import java.io.{File, FileWriter}
  31. scala> println( classOf[File], classOf[FileWriter])
  32. (class java.io.File,class java.io.FileWriter)

No comments:

Post a Comment