This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scala> class A { val prop = "a" } | |
scala> class B extends A { override val prop = "b" } | |
scala> class C extends B | |
scala> implicit class Foo(a: A) { def value = a.prop } | |
scala> implicit class Bar(b: B) { def value = b.prop } | |
scala> val c = new C | |
scala> c.value | |
res0: String = b | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Given | |
trait Common | |
class A extends Common | |
class B extends Common | |
class C extends Common | |
// These are equivalent... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scala> import mq.models.place._ | |
import mq.models.place._ | |
scala> import mq.models._ | |
import mq.models._ | |
scala> val a = Airport(123, "slug", Address("US"), LatLng(1,-1), PlaceAttributes(), PoiAttributes(), AirportAttributes()) | |
a: mq.models.place.Airport = Airport(123,slug,Address(US,None,None,None,None,None),LatLng(1.0,-1.0),PlaceAttributes(None,List(),None),PoiAttributes(None,None,None,None,None,List(),List(),None,None,None,List(),List(),List(),List(),None,List()),AirportAttributes(,List(),None)) | |
scala> a.name(Some("foo")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class A | |
class B extends A | |
class C extends B | |
val a = new A | |
val b = new B | |
val c = new C | |
def f[T : ClassTag](a: A) = a match { | |
case _: T => "is given type" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Function "add" implemented in javascript | |
function add(x, y) { | |
return x + y; | |
} | |
// Function "add" implemented in Scala as javascript is actually implementing it behind the scenes | |
sealed abstract class DynamicType | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bool.scala.html | |
@(param: Boolean) | |
<h1>Value: @param</h1> | |
// index.scala.html | |
@bool(Some(false)) | |
@bool("false") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// -- Measuring --- | |
def time[A](label: String, count: Int = 100)(block: => A): Long = { | |
// the first test run on the console is compiling it | |
block | |
// Take the average of <count> runs | |
(1 to count).toSeq.map { i => | |
val t0 = System.nanoTime() | |
block |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BadActor extends Actor { | |
def recieve = { | |
case Process(id: Int) => process(id) | |
} | |
private def process(id: Int) = { | |
val result = SomeService.get(id) | |
result onComplete { value => | |
sender ! value |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ---- Presenter Pattern ---- | |
// presenters.scala | |
object presenters { | |
implicit class StringPresenter(s: String) { | |
def reverse = Html(s.reverse) | |
} | |
implicit DateTimePresenter(dt: DateTime){ | |
def format(f: String) = DateTimeFormat.forPattern(f).print(dt) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Foo(x: Int) { | |
def this(x: String) = this(x.toInt) | |
} | |
class Bar(x: Int) | |
object Bar { | |
def apply(x: String) = new Bar(x.toInt) | |
} |
OlderNewer