scala - fra newbie til ninja på en time

26
fra newbie til ninja på en time Karianne Berg [email protected] @karianneberg Nina Heitmann nina.heitmann@iteraconsulti ng.no @ninaheitmann SCALA

Upload: karianneberg

Post on 15-Jan-2015

713 views

Category:

Technology


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Scala - fra newbie til ninja på en time

fra newbie til ninja på en time

Karianne Berg

[email protected]

@karianneberg

Nina Heitmann

[email protected]

@ninaheitmann

SCALA

Page 2: Scala - fra newbie til ninja på en time

public class Dog { private final String name; private int age;

public Dog(String name, int age) { this.name = name; this.age = age; }

public String getName = { return name; } public int getAge = { return age; } public void setAge(int age) {

this.age = age; }

public void bark() { System.out.println(”woof woof!”); }}

Page 3: Scala - fra newbie til ninja på en time

class Dog(val name : String, var age : Int){ def bark = println(”Woof woof!”)}

Page 4: Scala - fra newbie til ninja på en time

object DateUtil { def formatDate = { ... }}

Page 5: Scala - fra newbie til ninja på en time

class Dog (val name : String, var age : Int)

object Dog { def maximumAge = 12}

Page 6: Scala - fra newbie til ninja på en time

class Dog(val name : String, var age : Int)

class Dog(val name : String, var age : Int) { println(”Creating Dog”)}

class Dog(val name : String, var age : Int) { def this(name : String) = this(name, 10) // Kompileringsfeil def this(name : String) = println(”Dog!”)}

class Dog private(val name : String, var age : Int)

Page 7: Scala - fra newbie til ninja på en time

var name : String = "Harald"var name = "Harald"name = 6 // Kompileringsfeil

Page 8: Scala - fra newbie til ninja på en time

def square(x : Int) : Int = { x*x } // Int

def square(x : Int) = x*x // Int

def square(x : Int) { x*x } // Unit(!)

Page 9: Scala - fra newbie til ninja på en time

2+32.+(3)

Page 10: Scala - fra newbie til ninja på en time

val num = 8 // Intval isValid = true // Boolean

Page 11: Scala - fra newbie til ninja på en time

for(Integer element : list) {System.out.println(element);

}

list.foreach(element => println(element))

Page 12: Scala - fra newbie til ninja på en time

for(Integer element : list) {System.out.println(element);

}

list.foreach(element => println(element))list.foreach(println(_))

Page 13: Scala - fra newbie til ninja på en time

val list = List(1, 2, 3, 4, 5)list.filter(element => element < 3) // List(1, 2)

list.filter(_ < 3) // List(1, 2)

Page 14: Scala - fra newbie til ninja på en time

int sum = 0;for(Integer current : list) {sum += current;

}

val list = List(1, 2, 3, 4, 5)list.foldLeft(0) { (sum, current) => sum + current}

// 15

Page 15: Scala - fra newbie til ninja på en time

int sum = 0;for(Integer current : list) {sum += current;

}

val list = List(1, 2, 3, 4, 5)list.foldLeft(0) { (sum, current) => sum + current}

// 15

list.foldLeft(0) {_ + _} // 15

sum 0

Integer current

sum += current;

0 sum currentsum + current

Page 16: Scala - fra newbie til ninja på en time
Page 17: Scala - fra newbie til ninja på en time

DON’T TRY THIS AT HOME!

http://www.flickr.com/photos/94507863@N00/1108110035

Page 18: Scala - fra newbie til ninja på en time

Scala 2.8.09.0

.3+ siste plugin!

Page 19: Scala - fra newbie til ninja på en time

Byggeverktøy

Maven Simple Build Tool (SBT)

Page 20: Scala - fra newbie til ninja på en time
Page 21: Scala - fra newbie til ninja på en time

http://www.github.com/karianne- sbt-minimal-example

- mvn-minimal-example

Page 22: Scala - fra newbie til ninja på en time

http://www.scala-lang.orghttp://scala.java.nohttp://www.google.com

Page 23: Scala - fra newbie til ninja på en time
Page 24: Scala - fra newbie til ninja på en time

Onsdag 13:00 Pattern matching

Onsdag 14:15 AkkaTorsdag 13:00 LiftTorsdag 17:00 Actors i

produksjon

Page 25: Scala - fra newbie til ninja på en time

16.-17. november i Oslowww.smidig2010.no

Page 26: Scala - fra newbie til ninja på en time

Karianne [email protected]@karianneberg

Nina Heitmannnina.heitmann@iteraconsultin

g.no@ninaheitmann