File: test.scala

package info (click to toggle)
source-highlight 3.1.8-1.2~deb9u1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 10,224 kB
  • sloc: sh: 11,709; cpp: 10,226; ansic: 9,521; makefile: 1,902; lex: 1,200; yacc: 1,021; php: 213; perl: 211; awk: 98; erlang: 94; lisp: 90; java: 75; ruby: 69; python: 61; asm: 43; ada: 36; ml: 29; haskell: 27; xml: 23; cs: 11; sql: 8; tcl: 7; sed: 4
file content (36 lines) | stat: -rw-r--r-- 988 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Example Scala file for source-highlight.

case class Point(x: Double, y: Double)  

abstract case class Shape { def draw(): Unit = println(this) }  
case class Circle(center: Point, radius: Double) extends Shape  
case class Rectangle(lowerLeft: Point, height: Double, width: Double) extends Shape

import scala.actors._  
import scala.actors.Actor._  

object ShapeDrawer extends Actor {  
    def act() {  
        loop {   
            receive {  
                case s: Shape => s.draw()  
                case "exit"   => { println("exiting..."); exit }  
                case x: Any   => println("Error: Unknown message! " + x)
            }
        }
    }
}

ShapeDrawer.start() 
ShapeDrawer ! Circle(Point(0.0,0.0), 1.0)     
ShapeDrawer ! Rectangle(Point(0.0,0.0), 2, 5) 
ShapeDrawer ! 3.14159  
ShapeDrawer ! "exit"   

// Output:
// => Circle(Point(0.0,0.0),1.0)
// => Rectangle(Point(0.0,0.0),2.0,5.0)
// => Error: Unknown message! 3.14159
// => exiting...

Server.fork;