Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

readme.md

Scala by example

There's a LOT to the Scala programming language. This project includes some common and useful libraries and techniques.

How do I... Examples
compile and run scala code dynamically (eval)? com.skraba.byexample.scala.dynamic
use self-types versus traits? TraitSelfTypeSpec
use Regex? RegexSpec

Some of the code samples were taken or adapted into unit tests from other learning resources. All of these are highly recommended!

Source Examples
Official Tour of Scala com.skraba.byexample.scala.tour
Scala collections overview com.skraba.byexample.scala.collections
ScalaTest overview com.skraba.byexample.scala.scalatest

Resources

Other useful resources to learn more about Scala and functional programming:

Running the driver

This project includes an example executable that does a simple hello world mixing Java and Scala code.

mvn package
# Using the uber jar from the command line
alias byexample_go_scala="java -jar $(find ~+ -name scala-by-example-*.jar)"
byexample_go_scala --help
# Using the maven-generated classpath
mvn exec:java -Dexec.args="--name=World --count=7"
mvn exec:java -Dexec.mainClass="com.skraba.byexample.scala.ScalaGo" -Dexec.args="--name=world --count=7" 

By default, all of the slow tests (tagged with org.scalatest.tags.Slow) are excluded, but you can run them using the command line:

mvn package -Dplugin.maven.scalatest.exclude=

Or by updating the default property in your pom.xml:

<properties>
  <plugin.maven.scalatest.exclude>org.scalatest.tags.Slow</plugin.maven.scalatest.exclude>
</properties>

In an IDE like IntelliJ, set the Program arguments in the Run/Debug Configuration to -l org.scalatest.tags.Slow to exclude slow tests.