functions
key word
def
types
high-order
another function
as
argument
result
predicate
maps
element
to
boolean
example
def filter(p: T => Boolean): Array[T]
partially applied
value >
function
takes
x
returns
value > x
equivalent
x => pivot > x.
procedure
return
Unit
without arguments
definition
call
()
return
no explicit
key word
return
if return
need
=
before
body
overriding
override
explicitly
parameters
x: => Type
passed
unevaluted
identifiers
no difference
operator
identifier
can be
sequence
letters
digits
begin
letter
special
char
*
+
-
:
...
infix operator
E op E`
=
E.op(E`)
Types
Unit
void
declarations
object
singleton object
class
instance
no static
members
class
parameters
primary constructor
all
super class
scala.AnyRef
case
new
not mandatory
generated
getters
for
constructor
parameters
equals/hashcode
structure based
toString
instances
decomposed
pattern matching
field definition
var x: T
generates
getter
def x: T
setter
def x_= (newval: T ): unit
properties
possible to define
var
variable
value
default
_
val
constant
java
imports
java.lang
default
same package
multiple
classes
import java.util.{Date, Locale}
import java.text._
Genericity
syntax
[T]
Arrays
syntax
Array[T]
get element
arr(i)
Classes
scala.Any
value classes
scala.AnyVal
scala.Nothing
reference classes
scala.AnyRef
scala.Null
java.lang.Object
equalty
reference
AnyRef#eq()
java
==
natural
==
overloaded
Object#equals()