Index


a b c d e f g h i j l m n o p r s t u v w z

Symbols

! (invert)
    on class Boolean
+ method
    on Sets
    on Strings (concat) 1 2
++ (concat) in Scala collections library
+: (prepend) in Scala collections library
+= method (append)
    on class StringBuilder
    on Sets
-print
    in compiler options 1 2
-Xcheckinit
    in compiler options 1 2
-Xfatal-warnings
    in compiler options
-Xprint:
    in compiler options
        erasure
        parser
-Ywarn-dead-code
    in compiler options
== (equals)

a b c d e f g h i j l m n o p r s t u v w z

    method on class Any
## method
    hashCode, null-safe version
    on class Any
_ (underscore)
    used to initialize a field to its default value

A

abstract case classes
abstract fields 1 2 3
abstract types
abstract val
accepting wider types
    getOrElse method
        on class Option
    orElse method
        on class Option
    recover method
        on class Future
        on class Try
accessor
ambiguous references
anonymous class types
    function types
anonymous classes 1 2

a b c d e f g h i j l m n o p r s t u v w z

anonymous functions 1 2 3 4 5 6 7
    constructing
    implicit parameters
    implicit resolution
    omitting parentheses
    parameter lists
    passed directly
    passed in block expressions
anonymous subclasses
Any class
    in Scala class hierarchy diagram
    methods
        equals 1 2
        hashCode 1 2
AnyRef class
    in case classes overrides 1 2
    in default initial values
    in Scala class hierarchy diagram
AnyVal class
    in Scala class hierarchy diagram
append method
    alias
apply methods
    function types

a b c d e f g h i j l m n o p r s t u v w z

    implicit
argument declaration
argument order
    overriding methods
arguments
    positional
Array class
    in Scala collections library
assignments
    multiple-variable
auto-tupling 1 2
    compiler flags
auxiliary constructor

B

base classes
    concrete definition of method, in
best practices
block expressions
    curly braces
Boolean class
    in default initial values
boxing, of value types 1 2
Buffer trait
    in Scala collections library 1 2

a b c d e f g h i j l m n o p r s t u v w z

by-name parameters 1 2
by-value parameters
Byte class
    in default initial values

C

case classes
    abstract
    declaration
    explanation
    explicit implementations of methods, in
    extending
    generated hashCode method, switched off
    generated implementations
        equals method and hashCode method
    implicit overrides
    method definition, in
    pattern matching
    replacing factory method
chaining operations 1 2
Char class
    in default initial values
class construction
class constructor
class definition 1 2

a b c d e f g h i j l m n o p r s t u v w z

class hierarchy diagram
    for Scala
class initialization sequence 1 2 3 4 5 6 7 8
class MatchIterator
    in class Regex
    methods
        matchData
class members
    in scope
class Regex
    iterators
        class MatchIterator
    methods
        findAllIn
closure variables capturing 1 2
closures 1 2
collections 1 2
    imperative operations on
        using for loops
        using foreach method
    method names vs. operators
    tuples 1 2 3
    view method
        on trait Map

a b c d e f g h i j l m n o p r s t u v w z

companion objects 1 2
compare method
    on NaN
compiler
    performance
compiler errors
    _ must follow method; cannot follow Unit ...
    ambiguous implicit values: ... 1 2
    ambiguous reference to overloaded definition, ... 1 2
    could not find implicit value for parameter ...
    Int does not take parameters ...
    missing arguments for method ...; follow this method with `_' if you want to treat it as a partially applied function
    not enough arguments for method ...: ... 1 2
    not found: value ...
    overloaded method value ...
    recursive value ...needs type ...
    return outside method definition ...
    stable identifier required, but ...found
    too many arguments for method ...
    type mismatch; ... 1 2 3
        Note that implicit conversions are not applicable because they are ambiguous
    type Null cannot be used in a type pattern or isInstanceOf test
    unreachable code ...
compiler inlining

a b c d e f g h i j l m n o p r s t u v w z

compiler options
    -print 1 2
    -Xcheckinit 1 2
    -Xfatal-warnings
    -Xprint:
        erasure
        parser
    -Yno-adapted-args 1 2
    -Ywarn-adapted-args 1 2 3
    -Ywarn-dead-code
compiler warnings
    a pure expression does nothing in statement position; you may be omitting necessary parentheses
    Adapting argument list by ...: ... 1 2
    dead code following this construct ...
    Reference to uninitialized value ... 1 2 3
    value ...does nothing other than call itself recursively
concise code 1 2 3 4 5 6
constant values 1 2
    pattern matching 1 2
    stable identifiers
    uppercase variable names
    vals
constructors 1 2 3 4 5
    arguments 1 2 3 4 5

a b c d e f g h i j l m n o p r s t u v w z

    auxiliary
    body 1 2 3
    parameters
    primary
        no-arg 1 2
    statements, order of
    superclass
    trait
control flow
    nested functions
control structures
convenience methods
    toSet
curly braces
    block expressions
    early field definitions
    parentheses, instead of 1 2 3
curried definitions 1 2 3 4 5
curried functions 1 2
curried invocations
curried parameters
currying
cyclic definitions 1 2 3 4
cyclic dependencies 1 2 3

a b c d e f g h i j l m n o p r s t u v w z

cyclic references

D

data structures
    immutable 1 2
debugging statement
declaration order 1 2 3 4
default arguments 1 2
    at runtime
        invoking default methods
    with named parameters
default implicits
default initial values 1 2 3 4 5 6 7
default methods
default parameter values
default values 1 2
    mutable
    uninitialized 1 2
deferring
    evaluations
desugar 1 2 3 4
    for comprehensions 1 2
    for loop 1 2
    generators
    guards

a b c d e f g h i j l m n o p r s t u v w z

    map
Double class
    in default initial values

E

eager evaluations
eager vals
early field definitions 1 2 3
    curly braces
early initializers
elegant approach
    using lazy vals
elegant syntax
empty argument list
endless loop 1 2 3 4 5 6 7
equals method
    behavior unaffected
    compiler-generated overridden implementation
    contract with hashCode method 1 2
    generated implementation 1 2
    hashCode method, coherence between
    on class Any
    on class Any 1 2 3 4 5 6 7 8 9
    structural equality with hashCode method
eta expansion 1 2 3 4 5 6 7 8

a b c d e f g h i j l m n o p r s t u v w z

    anonymous function value
    avoiding
evaluations
    deferring
exception handling
expected types 1 2 3
explicit argument
explicit implementations
    methods
        in case classes
extractors

F

factory methods 1 2
field accessors
fields
    pre-initialized
FilterMonadic trait
    methods
        flatMap 1 2
        map 1 2
        withFilter 1 2 3 4 5
final modifier
findAllMatchIn method
    in class Regex

a b c d e f g h i j l m n o p r s t u v w z

flatMap method
    on trait FilterMonadic 1 2
Float class
    in default initial values
fold method
    on class List
    on trait Iterable
    on trait GenTraversableOnce
foldLeft method
    on trait Iterable
    on trait Range 1 2
for comprehensions 1 2 3 4 5
    desugaring 1 2
for expressions 1 2
    desugaring
    initializing matcher
for loop
    desugaring 1 2
force method
    on view
foreach method
    initializing matcher
    invocation
        on result of map invocation

a b c d e f g h i j l m n o p r s t u v w z

    on collections, tuples
free variables 1 2 3
function body 1 2
function definition
function invocation
function literals 1 2
function objects
function parameters 1 2
function types
    anonymous class types
    apply methods
    shorthands
function values 1 2 3 4 5
functional constructs
functional primitives 1 2
functional programming
    immutability
functionality
    general
    reusable
functions
    eta-expanded
functions values

G

generators
    desugaring
    pattern matching
        in for comprehensions
generic functions
generic types 1 2
GenTraversableOnce trait
    methods
        fold
getOrElse method
    on class Option
        accepting wider types
        return type
good practices 1 2 3

H

hashCode method
    ## null-safe version, in Scala
    behavior unaffected
    compiler-generated
    contract with equals method 1 2
    equals method, coherence between
    generated implementation
    generated, switched off
    on class Any 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

a b c d e f g h i j l m n o p r s t u v w z

        default implementation
    structural equality with equals method
    super
HashSet class
    in Scala collections library
helper methods

I

if-else expressions
    nested
immutability 1 2
implementation specific
implementations
    explicit
implicit
    ambiguous 1 2 3
    conversion
    defs
    function vals
    values
        declaration
        initialization
implicit classes
implicit conversions 1 2
    type 1 2

a b c d e f g h i j l m n o p r s t u v w z

implicit evidence
implicit overrides 1 2 3
    case classes
implicit parameters
    anonymous functions
    resolution
    resolving
implicit resolution
implicit, default
    any2stringadd
    augmentString
    Ordering trait
        on class Double
implicitly method
    on object Predef
implicits
    empty argument list
inferred return type 1 2
    wider
inheritance
initial value
initialization order
initialization statements 1 2
    executed

a b c d e f g h i j l m n o p r s t u v w z

Int class
    in default initial values
intermediate types
isInstanceOf method
    on runtime types
Iterable interface
    in Java collections library
Iterable trait
    in Scala collections library 1 2 3 4 5 6
    methods
        fold
        foldLeft
        map 1 2
        size 1 2 3
        sum 1 2
        toSeq
iteration order 1 2 3 4
    on trait SortedSet
iterators
    for expressions
        initializing matcher
    foreach method
        initializing matcher
    in class Regex

a b c d e f g h i j l m n o p r s t u v w z

        class MatchIterator

J

Java interoperability
java.lang.Object
    passed to println

L

lambda functions
    return statements
language specification
    features, undocumented
    gotchas
lazy evaluation
lazy initialization
lazy map
    overhead
lazy vals 1 2 3 4 5 6 7 8 9 10 11 12 13
    elegant approach
    evaluation of
    initialization of 1 2
    no benefit
    recomputation of
    reinitialization of
    thrown exception during initialization
List class

a b c d e f g h i j l m n o p r s t u v w z

    in Scala collections library 1 2 3 4 5 6
    methods
        fold
        map 1 2 3 4 5
        size
Long class
    in default initial values
lowercase variable names
    backticks, enclosing in
    constant values
    stable identifiers
    variable patterns
lt method
    on NaN
    on trait Ordering
        used by stableSort method

M

map
    desugaring
map method
    initializing matcher
    on class List 1 2 3 4 5
    on trait Iterable 1 2
    on trait Set

a b c d e f g h i j l m n o p r s t u v w z

    on trait FilterMonadic 1 2
    on trait Seq 1 2 3 4 5 6 7 8 9 10
map view
mapValues method
    on class Map
matchData method
    in class MatchIterator
member declarations
metagrobologists, see About the Authors
method arguments
    naming
method overloading
method parameters
    defining
methods
    arguments
    compiler-generated 1 2 3
    parameterless
    side-effecting
    signature
multiple parameter lists
    defining default argument values
    implicit parameters
    non-implicit parameters

a b c d e f g h i j l m n o p r s t u v w z

    partially applied functions
    type inference
    using curly braces
multiple-variable assignments
    pattern matching
mutable objects
mutable states

N

named arguments
    with default arguments
NaN (not a number)
    in sorting algorithms
nested anonymous functions
nested functions 1 2
    control flow
    return statements
non-deterministic
Nothing type
    in Scala class hierarchy diagram
Null special type
    in Scala class hierarchy diagram
        compatibility with Java
null values
    in default initial values

a b c d e f g h i j l m n o p r s t u v w z

nullary methods
number literals
Numeric trait 1 2 3 4 5
numeric types

O

object allocation
    avoiding
Object class
    in Scala class hierarchy diagram
object members 1 2
    in scope
object-oriented programming
one-liners
Option factory
ordering
    ascending value
    iteration 1 2 3 4
        on trait SortedSet
    lexicographically
    on class Double
        inconsistent
    on NaN
orElse method
    on class Option

a b c d e f g h i j l m n o p r s t u v w z

        accepting wider types
overloading
    alternatives
    methods 1 2
        multiple signatures
    resolution
        first stage
        second stage
        shape-based
        two-stage algorithm
        type-based 1 2
overriding behavior of defs 1 2
overriding behavior of vals 1 2
overriding methods
    argument order

P

parameter evaluation
parameter lists
    empty
parameterless methods 1 2 3
parameters
    by-name 1 2
    by-value
    defining

a b c d e f g h i j l m n o p r s t u v w z

    implicit 1 2
        resolution
        resolving
    multi-parameter lists
parent class
    explicit implementations of methods, inherited from
parent trait
    explicit implementations of methods, from
partial application 1 2
partially applied functions 1 2 3 4 5 6
pattern definition
pattern guards
    desugaring
pattern matching 1 2 3 4
    checking for null
    generators
        in for comprehensions
    on case classes
    stable identifiers 1 2
    unreachable code
placeholder syntax 1 2 3 4 5 6
    using underscore character
polymorphic resolution
positional arguments

a b c d e f g h i j l m n o p r s t u v w z

pre-initialized fields 1 2
precedence
    during implicit search
Iterable object
    methods
        implicitly
primary constructor 1 2 3 4
pure functions

R

Range trait
    in Scala collections library 1 2
    methods
        foldLeft 1 2
recover method
    on class Future
        accepting wider types
    on class Try
        accepting wider types
recursive computations
recursive definitions
    avoiding
refactoring
    cautions
reference equality

a b c d e f g h i j l m n o p r s t u v w z

referentially transparent
regular expressions
    utility functions
        class Regex
return expressions 1 2 3
    code following, ignored
return keyword
return statements
    avoiding
    enclosing scope
    explicit 1 2
        performance optimization
    in function body
    in lambda functions
    in methods 1 2
    in nested functions 1 2
    multiple 1 2
    unreachable code
return value
    of method
return values
    of method
runtime error
    scala.MatchError: ...

a b c d e f g h i j l m n o p r s t u v w z

runtime exceptions 1 2 3 4 5
    Java
        IllegalStateException: No match available ...
        IndexOutOfBoundsException: ... 1 2
        NullPointerException: ... 1 2 3
        StackOverflowError: ... 1 2 3
        StringIndexOutOfBoundsException: ...
    Java.NullPointerException
    Scala
        MatchError: ... 1 2 3
        NonLocalReturnControl: ...
        UninitializedFieldError: ...
runtime type

S

Scala collections library 1 2 3
    methods
        concat
        prepend
        toSet
Scala language
    best practices
    class hierarchy diagram
    features
        auto-tupling

a b c d e f g h i j l m n o p r s t u v w z

        curly braces
    good practices 1 2 3
    strengths
        interoperability with Java
Scala style 1 2 3 4 5 6 7
    idiomatic 1 2
    immutability
Scala's null-safe versions
    == (equals)
    ## (hashCode) 1 2
LowPriorityImplicits class
Scaladoc 1 2 3 4
self-references 1 2
    avoiding
    in variable definitions
Seq trait
    in Scala collections library 1 2 3 4 5 6 7 8 9
    methods
        map 1 2 3 4 5 6 7 8 9 10
Set trait
    in Scala collections library 1 2 3 4 5 6
    methods
        map
        size

a b c d e f g h i j l m n o p r s t u v w z

Short class
    in default initial values
side effects 1 2 3 4 5 6
    class MatchIterator in class Regex
singleton
size method
    on class List
    on trait Iterable 1 2 3
    on trait Set
SortedSet trait
    iteration order
        determined by elements
sorting
    on NaN
sorting algorithms
    mirroring compareTo method
        on class Double, in Java
    NaN, handling of
    stableSort method
stable identifiers
    constant values
    lowercase variable names
    pattern matching 1 2
    variable assignment

a b c d e f g h i j l m n o p r s t u v w z

stableSort method
    implementation of
    on NaN
    using lt method
stack overflow
static overloading 1 2 3 4 5
strict evaluation
strict vals 1 2
structural equality 1 2 3
    equals method and hashCode method
    generated
subclass 1 2 3
sum method
    on trait Iterable 1 2
superclass 1 2 3 4 5 6 7
superclass constructor 1 2 3 4

T

target methods
template, definition of
temporary vals
thread safety
"to reach the unreachable star", see unreachable code
toInt method
toSeq method

a b c d e f g h i j l m n o p r s t u v w z

    on trait Iterable
trait constructor 1 2
transformations
    Scala Collections, features of
        iteration order, determined by elements
        map
        preserving type
tuples 1 2
type aliases 1 2
type ascriptions
type bindings
type bounds
type checking 1 2
type constraints 1 2
type conversions
    implicit
type declarations 1 2 3
type erasure 1 2
type inference 1 2 3 4 5
type mismatch 1 2
type parameters
type requirements
type signature
typeclass pattern 1 2

a b c d e f g h i j l m n o p r s t u v w z

U

unary method (!)
    on class Boolean
unboxing, of value types
    by compiler using unboxToBoolean method
        on class BoxesRunTime
underscore character 1 2 3 4 5 6 7
    as placeholder syntax
    as wildcard symbol
underscore symbol
Uniform Access Principle
uninitialized fields
uninitialized values
uninitialized variables
uniqueness constraint
    in Set trait
        in Scala collections library
Unit class
    in default initial values
unit tests
    default branch, of code path
uppercase variable names 1 2
    constants

V

value classes
    object allocation, avoiding
value conversions 1 2
value definition
value discarding 1 2
variable assignment
    pattern matching
    stable identifiers
variable initialization 1 2 3 4 5 6
variable names
    lowercase 1 2
    uppercase
variable patterns
    lowercase variable names
Vector class
    in Scala collections library
view

W

wildcard symbol
    using underscore character
withDefault method
    on class Map
withDefaultValue method
    on class Map

a b c d e f g h i j l m n o p r s t u v w z

withFilter method
    on trait FilterMonadic 1 2 3 4 5

Z

zipped method
    on class List
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset