Return to Programming in Scala, 5th edition
! (invert)
on class Boolean
!= (not equals)
method on Any 1 2
“ (string delimiter)
”“” (raw string delimiter)
@ (at sign)
in patterns
& (bitwise-and)
on integral types
& (intersect)
on Set traits 1 2
&& (logical-and)
on class Boolean
& (diff)
on Set traits
(greater than)
on numeric types
(shift right)
on integral types
(unsigned shift right)
on integral types
: (lower bound)
= (greater than or equal to)
on numeric types
< (less than)
on numeric types
« (shift left)
on integral types
← (in)
in for expressions
<: (upper bound)
⇐ (less than or equal to)
on numeric types
' (character delimiter)
() (empty parentheses)
on method definitions
shorthand for apply method invocation
() (unit value) 1 2
on numeric types
+ (add element)
on trait immutable.Map 1 2
on trait immutable.Set 1 2 3
+ (covariant in)
variance annotation
+ (plus)
on numeric types
++ (add elements)
on Iterable traits
on Map traits 1 2
on Set traits
on trait immutable.Set
on trait Iterator
++: (prependedAll)
on Seq traits
++= (add elements to)
on trait mutable.Map 1 2
on trait mutable.Set 1 2
++= (appendAll)
on trait Buffer
++=: (prependAll)
on trait Buffer
+: (prepended)
on Seq traits
+= (add element to)
on trait mutable.Map 1 2
on trait mutable.Set 1 2
+= (add to)
on trait mutable.Set
reassignment with immutable sets and vars
+= (append)
on class ArrayBuffer
on class ListBuffer
on trait Buffer
+=: (prepend)
on class ListBuffer
on trait Buffer
- (contravariant in)
variance annotation
- (minus)
on numeric types
- (remove element)
on trait immutable.Map 1 2
on trait immutable.Set 1 2
→ (map to)
— (remove elements)
on trait immutable.Map 1 2
on trait immutable.Set 1 2
—= (remove elements from)
on trait mutable.Map 1 2
on trait mutable.Set 1 2
on trait Buffer
-= (remove element from)
on trait mutable.Map 1 2
on trait mutable.Set 1 2
on trait Buffer
/ (divided by)
on numeric types
: (colon)
in type annotations
:+ (appended)
on Seq traits
:++ (appendedAll)
on Seq traits
:: (cons) class
as pattern constructor
:: (cons) method
on class List 1 2
right associativity of 1 2
::: (concatenation)
on class List 1 2
; (semicolon)
inference
= (variable assignment)
⇒ (right arrow, or “rocket”)
in function literals
in match alternatives
a b c d e f g h i j k l m n o p q r s t u v w y z
== (equals)
in set membership
== (equals)
in Scala versus Java
method on Any 1 2
quick introduction
??? (unimplemented)
on object Predef
in inner class type names
% (remainder)
on numeric types
[?\*?] (asterisk)
in import statements
repeated parameter
_ (underscore)
in function literals 1 2
in identifiers
in numeric literals
in match expressions
_1, _2, etc.(tuple accessors)
_= (underscore equals)
in setter method names
a b c d e f g h i j k l m n o p q r s t u v w y z
on integral types
(bitwise complement)
on integral types
]] | (bitwise-or) on integral types | (union) on Set traits | programming_in_scala_5th_edition_index | (logical-or) on class Boolean {} (curly braces) in class definitions in imports instead of parentheses in method invocations ` (back tick) in constants in identifiers ==A== * [[Abelson, Harold
on object Predef 1 2
a b c d e f g h i j k l m n o p q r s t u v w y z
AssertionError class
assertions 1 2
assignment
result is unit value
associativity
right versus left 1 2
automatic
boxing
conversion, see implicit conversion
imports
auxiliary constructors
base classes, see superclasses
BDD, see behavior-driven development
behavior-driven development
BigInt class
BigInteger class
bitwise operations, on integral types
logical (&, ]] | language properties camel casing capitalization, of identifiers capitalize method on class Int (via RichInt) cardinality, of types case classes case classes cases, see alternatives casting, see also toInt, toChar, etc. with asInstanceOf with typed patterns (the preferred style) catch clauses Cathedral and the Bazaar, The (Raymond) chained package clauses a b c d e f g h i j k l m n o p q r s t u v w y z Char class character literals escape sequences checked exceptions Church, Alonzo Class class, see classOf method class hierarchy diagram for maps for Scala for sets class parameters initialization order compared to abstract fields not legal on singleton objects classes abstract 1 2 anonymous case 1 2 companion generic inner, see inner classes nesting of private sealed clear method a b c d e f g h i j k l m n o p q r s t u v w y z on trait mutable.Map on trait mutable.Set 1 2 on trait Buffer clone method on trait mutable.Map on trait mutable.Set on trait Buffer closures 1 2 versus Java's lambdas code duplication reducing 1 2 collect method on Iterable traits on trait Iterator CollectionConverters object collections api conversion between Java and Scala parallel 1 2 views of combinators companion objects companion classes companion objects a b c d e f g h i j k l m n o p q r s t u v w y z and givens and factory methods visibility compare method of trait Ordered 1 2 compatibility Scala with Java Scala with JavaScript compatibility, Scala with Java compiler errors class ...needs to be abstract, since method ...in class ...of type ...is not defined compiler errors overloaded method value ...with alternatives ...cannot be applied to ... ';' expected but ',' found ...is already defined as ... ...is not a legal prefix for a constructor class ...is abstract; cannot be instantiated class type required constructor ...cannot be accessed in ... could not find implicit value for parameter asIterable covariant type ...occurs in contravariant position in type ...of value ... 1 2 error overriding method ...in class ...of type ...method ...needs 'override' modifier error overriding method ...in class ...of type ...method ... cannot override final member illegal inheritance from final class a b c d e f g h i j k l m n o p q r s t u v w y z inferred type arguments ...do not conform to method ...type parameter bounds ... method ...overrides nothing 1 2 no implicit argument matching parameter type ...was found no implicit argument matching parameter type ...was found 1 2 not found: value ... reassignment to val 1 2 trait ...takes type parameters type mismatch 1 2 3 4 5 6 unreachable code value ...is not a member of ... compiler warnings match is not exhaustive 1 2 non variable type-argument ...in type pattern is unchecked since it is eliminated by erasure compiling complete function complexity, managing composition 1 2 mixin, see mixin composition concat method on Iterable objects on Iterable traits on object List conciseness Scala versus Java a b c d e f g h i j k l m n o p q r s t u v w y z concurrentmap members ConcurrentMap trait methods remove replace ConcurrentMap trait methods putIfAbsent cons (::) method on class List 1 2 3 right associativity of constant patterns 1 2 constants constructor patterns 1 2 constructors auxiliary in Java versus Scala invoking superclass primary private contains method on Map traits 1 2 on Seq traits a b c d e f g h i j k l m n o p q r s t u v w y z on Set traits 1 2 containsSlice method on Seq traits context bounds context parameters continue keyword (Java) living without contravariance 1 2 control abstraction 1 2 conventions, identifier capitalization conversion between Java and Scala collections between mutable and immutable collections implicit 1 2 3 4 to specific collection types 1 2 3 4 cooperative equality copyToArray method on class List on Iterable traits on trait Iterator corresponds method on Seq traits count method on class List a b c d e f g h i j k l m n o p q r s t u v w y z on Iterable traits on trait Iterator covariance of arrays in Java of function result type of lists creating and initializing arrays lists maps objects with factories 1 2 objects with new sets singleton objects tuples curly braces in class definitions in imports instead of parentheses in method invocations currying 1 2 D data structures fully persistent data types a b c d e f g h i j k l m n o p q r s t u v w y z algebraic enumerated declarations, versus definitions decrementing with -= 1, not —, see incrementing def keyword 1 2 default methods in Java default values of fields defensive copies definitions, versus declarations dequeue method on class Queue derivation typeclass 1 2 3 derived classes, see subclasses Design Patterns (Gamma, et. al.) diff method on Seq traits on Set traits Dijkstra, Edsger distinct method on Seq traits a b c d e f g h i j k l m n o p q r s t u v w y z on trait Iterator distinctBy method on Seq traits divide and conquer principle do keyword in for expressions do-while loops domain models domain-specific languages a little language for digital circuits in Smalltalk and Lisp ScalaTest's matchers DSL Double class downloading Scala source code for book examples drop method on class List on class List on Iterable traits on trait Iterator dropRight method on class List on Iterable traits a b c d e f g h i j k l m n o p q r s t u v w y z dropWhile method on class List on Iterable traits on trait Iterator DSLs, see domain-specific languages duplicate method on trait Iterator dynamic binding 1 2 typing 1 2 E Eckel, Bruce EDT, see enumerated data type Effective C++ (Meyers) efficiency and hash consing of arrays 1 2 of class ListBuffer of fold left and right of immutable objects of lists of looping versus recursion of maps of merge versus insertion sort a b c d e f g h i j k l m n o p q r s t u v w y z of sets of value types 1 2 3 Eiffel language else clauses embedded DSLs, see domain-specific languages empty method on Iterable objects on Map objects 1 2 on Set objects 1 2 on Set traits empty-paren methods enclosing instances, see inner classes end markers endsWith method on Seq traits enqueue method on class Queue ensuring method on object Predef enum keyword (Java), see Enumeration class enum type enumerated data type eq method on class AnyRef 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z equality, see also equals method != (not equals) method on class Any 1 2 == (equals) method on class Any 1 2 cooperative eq method on class AnyRef 1 2 in Scala versus Java multiversal ne method on class AnyRef 1 2 quick introduction 1 2 universal value versus reference equals method on class Any equals method, see also equality generated for case classes 1 2 on class Any erasure Erlang language 1 2 errata, viewing and reporting errors, see also compiler errors a b c d e f g h i j k l m n o p q r s t u v w y z handling with exceptions preventing escape sequences, for character literals eta expansion 1 2 eventually method on trait Eventually example code, for book downloading license of exception handling exists method on class List on class StringOps on class List 1 2 on Iterable traits on trait Iterator export aliases export keyword exports extends keyword extension keyword extension methods 1 2 a word of caution quick introduction a b c d e f g h i j k l m n o p q r s t u v w y z external DSLs, see domain-specific languages extractors extractor pattern F f string interpolator F# language 1 2 factory objects factory methods 1 2 false value fields abstract defining initialization in traits initializing to default values with uninitialized overriding parametric 1 2 3 private 1 2 files ensuring closed with finally fill method on Iterable objects on object List filter method on class List 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z on Iterable traits on trait Iterator filterInPlace method on trait mutable.Map on trait mutable.Set filterKeys method on MapView trait filterNot method on Iterable traits on trait Iterator filters in for expressions final modifier on variables (Java), see vals finally clauses find method on class List on Iterable traits on trait Iterator first-order methods on class List flatMap method on class List on Iterable traits a b c d e f g h i j k l m n o p q r s t u v w y z on trait Iterator flatten method on class List on class List Float class floating-point literals fold left right foldLeft method on class List on Iterable traits on trait Iterator foldRight method on class List on Iterable traits on trait Iterator for expressions 1 2 using patterns in for loops, see also for expressions forall method on class List 1 2 on Iterable traits on trait Iterator a b c d e f g h i j k l m n o p q r s t u v w y z foreach method on class Array on class List 1 2 on Iterable traits formatted method on Any (via StringAdd) formatting strings Fortran language free variables fully qualified names function literals underscores in function literals and closures for partial functions placeholder syntax 1 2 syntax of underscores in versus function values function values 1 2 and closures functional programming lazy initialization functional programming 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z main ideas of functional style methods without side effects recognizing refactoring functional style to functions basic form of first-class 1 2 higher-order local partial partially applied predicates procedures pure recursive tail recursive "Fundamental Concepts in Programming Languages" (Strachey) G Gamma, Erich generic types generic arrays generic types get method a b c d e f g h i j k l m n o p q r s t u v w y z on Map traits getOrElse method on Map traits getOrElseUpdate method on trait mutable.Map getter methods 1 2 3 givens anonymous when multiple apply Gosling, James groupBy method on Iterable traits grouped method on Iterable traits on trait Iterator groupMap method on Iterable traits groupMapReduce method on Iterable traits "Growing a language" (Steele) H handlers, exception, see catch clauses hash consing hash tries 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z hashCode method generated for case classes 1 2 on class Any HashMap class in class hierarchy diagram HashSet class creating and initializing immutable in class hierarchy diagram Haskell language Haskell language 1 2 as a lazy functional language hasNext method on trait Iterator head method on class List 1 2 on Iterable traits headOption method on Iterable traits Hejlsberg, Anders hiding names in import clauses names in nested packages variables in nested blocks higher-kinded types, see http:// booksites.artima.com/ programming_in_scala_4ed a b c d e f g h i j k l m n o p q r s t u v w y z higher-order functions higher-order methods on class List I identifiers alphanumeric capitalization conventions for literal (with back ticks) mixed operator idioms, see patterns and idioms if expressions 1 2 immutability as functional style selecting mutable versus immutable collections trade-offs immutable.ArraySeq class in Scala imperative style recognizing refactoring to functional style implements keyword (Java), see mixin composition implicit conversion to rich wrappers a b c d e f g h i j k l m n o p q r s t u v w y z implicit conversion 1 2 3 4 imports 1 2 hiding clauses implicit 1 2 on-demand (i.e., wildcard) renaming clauses selector clauses incrementing with += 1, not ++ indexOf method on Seq traits on trait Iterator indexOfSlice method on Seq traits indexWhere method on Seq traits on trait Iterator indices method on class List on Seq traits inference semicolon 1 2 term type 1 2 3 a b c d e f g h i j k l m n o p q r s t u v w y z Hindley-Milner style the algorithm infix keyword infix operator notation information hiding 1 2 with factory methods inhabitants, of types inheritance extending classes mixing in traits versus composition inheritance hierarchy diagram, see class hierarchy diagram init method on class List 1 2 on Iterable traits initialization lazy of abstract vals of arrays of classes, see constructors of fields to default values of instance variables with constructor parameters, see class parameters of lists of maps a b c d e f g h i j k l m n o p q r s t u v w y z of sets 1 2 of traits initializers inner classes and path-dependent types and private members granting access to private members of inner classes private, to hide implementation insert method on trait Buffer insertAll method on trait Buffer insertion sort 1 2 instance variables instanceOf (Java), see type tests Int class integer literals interfaces (Java), see traits internal DSLs, see domain-specific languages interoperability Scala with Java Scala with JavaScript interpolated string literals intersect method a b c d e f g h i j k l m n o p q r s t u v w y z on Seq traits on Set traits intersection types invoking a superclass constructor is-a relationships isDefinedAt method on Map traits on Seq traits on trait PartialFunction isEmpty method on class List 1 2 on Iterable traits on Map traits on trait Iterator isInstanceOf method on class Any Iterable objects methods apply concat empty fill iterate range a b c d e f g h i j k l m n o p q r s t u v w y z tabulate unfold Iterable traits methods addString collect copyToArray count drop dropRight dropWhile exists filter filterNot find flatMap foldLeft foldRight forall foreach groupBy grouped groupMap groupMapReduce a b c d e f g h i j k l m n o p q r s t u v w y z head headOption init isEmpty iterator knownSize last lastOption lazyZip map max min mkString nonEmpty partition partitionMap product reduceLeft reduceRight sameElements size sizeCompare sizeIs slice a b c d e f g h i j k l m n o p q r s t u v w y z sliding span splitAt sum tail take takeRight takeWhile to toArray toIndexedSeq toIterable toList toMap toSeq toSet view 1 2 withFilter zip zipAll zipWithIndex ++ (add elements) concat iterate method a b c d e f g h i j k l m n o p q r s t u v w y z on Iterable objects iterator method members on class List on Iterable traits Iterator trait methods addString buffered collect copyToArray count distinct drop dropWhile duplicate exists filter filterNot find flatMap foldLeft foldRight forall a b c d e f g h i j k l m n o p q r s t u v w y z grouped hasNext indexOf indexWhere isEmpty knownSize length map max min mkString next nonEmpty padTo partition patch product reduceLeft reduceRight sameElements size slice sliding sum a b c d e f g h i j k l m n o p q r s t u v w y z take takeWhile to toArray toIndexedSeq toIterable toList toMap toSeq toSet withFilter zip zipAll zipWithIndex ++ (add elements) J Java language 1 2 wildcards Java language collections covariance of arrays default methods inner classes interoperability with Scala 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z raw types JavaBeans JavaScript language interoperability with Scala JSON K Kay, Alan 1 2 keys method on Map traits 1 2 keySet method on Map traits 1 2 keysIterator method on Map traits keywords, using as identifiers knownSize method on Iterable traits on trait Iterator L lambda calculus Landin, Peter last method on class List 1 2 on Iterable traits lastIndexOf method a b c d e f g h i j k l m n o p q r s t u v w y z on Seq traits lastIndexOfSlice method on Seq traits lastOption method on Iterable traits lattice laws lazy modifier lazy functional languages LazyList class in Scala 1 2 lazyZip method on class List lazyZip method on Iterable traits least upper bound length method on class List 1 2 on trait Iterator lengthCompare method on Seq traits linearization, of traits linked lists Liskov Substitution Principle a b c d e f g h i j k l m n o p q r s t u v w y z Liskov substitution principle Lisp language 1 2 List class, see also lists 1 2 first-order methods on higher-order methods on immutability methods ::: (concatenation) 1 2 addString apply copyToArray count 1 2 3 drop 1 2 dropRight dropWhile exists 1 2 filter 1 2 find flatMap flatten 1 2 foldLeft foldRight forall 1 2 foreach 1 2 a b c d e f g h i j k l m n o p q r s t u v w y z head 1 2 indices init 1 2 isEmpty 1 2 iterator last 1 2 lazyZip length map 1 2 mkString 1 2 partition remove reverse 1 2 sort sortWith span splitAt tail 1 2 take takeWhile toArray toString unzip zip a b c d e f g h i j k l m n o p q r s t u v w y z zipWithIndex :: (cons) 1 2 List object methods apply 1 2 concat fill range 1 2 tabulate ListBuffer class 1 2 lists, see also List class 1 2 appending to concatenation (:::) converting to arrays converting to strings creating and initializing in-depth treatment passing elements as arguments with [ | programming_in_scala_5th_edition_index | Scala's two instead of Java's four naming conventions ne method on class AnyRef 1 2 nesting a b c d e f g h i j k l m n o p q r s t u v w y z of classes and objects of functions of packages .NET 1 2 3 new keyword leaving off not needed when calling factory methods not needed with case classes next method on trait Iterator Nice language Nil object 1 2 Nilsson, Rickard nominal subtyping None object nonEmpty method on Iterable traits on trait Iterator nonvariance Nothing type as result type of throw expressions as type parameter of List in Scala class hierarchy diagram Null class a b c d e f g h i j k l m n o p q r s t u v w y z in Scala class hierarchy diagram null value using Option instead for optional values NullPointerException, preventing O Object class, see also AnyRef class in Scala class hierarchy diagram object keyword object-oriented programming object-oriented programming 1 2 Object-Oriented Software Construction (Meyer) objects companion, see companion objects equality of, see equality functional (immutable) immutable mutable singleton, see singleton objects standalone OCaml language 1 2 3 on-demand import opaque types operator associativity a b c d e f g h i j k l m n o p q r s t u v w y z example: class Rational with operator methods identifiers notation 1 2 3 infix postfix prefix "overloading" precedence 1 2 table of optimization of tail recursion of value types Option class Ordered trait 1 2 Ordering trait outer classes, see inner classes overloading constructors methods "operator" override modifier 1 2 on parametric fields overriding defs with vals a b c d e f g h i j k l m n o p q r s t u v w y z methods and fields P package clauses 1 2 package-private access (Java) packages hiding implicitly imported unnamed package packaging padTo method on Seq traits on trait Iterator padToInPlace method on trait Buffer pair, name for Tuple2 parallel collections 1 2 parameter untupling parameterization with types with values parameterized types parameterless methods overriding with vals parameters a b c d e f g h i j k l m n o p q r s t u v w y z anonymous by-name 1 2 class, see class parameters context 1 2 default values formal named repeated 1 2 3 type versus arguments parametric fields parametric fields 1 2 3 parentheses using curly braces instead of when to use on method calls 1 2 partial functions PartialFunction trait partially applied functions partition method on class List on Iterable traits on trait Iterator partitionMap method on Iterable traits a b c d e f g h i j k l m n o p q r s t u v w y z passing arguments to superclass a constructor patch method on Seq traits on trait Iterator patchInPlace method on trait Buffer path-dependent types and inner classes pattern matching in exception handling in lists pattern guards pattern matching constant patterns 1 2 constructor patterns 1 2 examples of in for expressions in variable definitions in-depth coverage quick introduction sequence patterns tuple patterns typed patterns a b c d e f g h i j k l m n o p q r s t u v w y z variable patterns 1 2 variable-binding patterns wildcard patterns 1 2 patterns and idioms divide and conquer principle ensuring a resource is closed patterns and idioms conditional initialization loan pattern 1 2 reading lines, characters, etc., with do-while rich wrappers pattern using Option not null to indicate optional values performance of collection types of Scala compared to Java Perl language Pizza language placeholder syntax in function literals 1 2 PLT-Scheme language pointers, see references polymorphism ad hoc 1 2 and type inference a b c d e f g h i j k l m n o p q r s t u v w y z postconditions, see ensuring method postfix operator notation precedence, operator 1 2 table of preconditions Predef object methods | [[ (union)
& (diff)
& (intersect)
++= (add elements to)
+= (add element to)
—= (remove elements from)
— (remove elements)
-= (remove element from)
- (remove element)
++ (add elements)
+ (add element)
sets 1 2
and generic types
class hierarchy diagram
creating and initializing immutable
creating and initializing mutable
mutability modeled in hierarchy
table of methods
setter methods 1 2
shadowing variables
a b c d e f g h i j k l m n o p q r s t u v w y z
shell, Scala REPL
shift operations («, », »>)
on integral types
short circuiting, of logical operations
Short class
sibling methods
side effects 1 2 3
minimizing
Simula language
single abstract method types
singleton objects
initialization semantics
nesting of
singleton types
size method
on Iterable traits
on Set traits
on trait Iterator
sizeCompare method
on Iterable traits
sizeIs method
on Iterable traits
slice method
on Iterable traits
a b c d e f g h i j k l m n o p q r s t u v w y z
on trait Iterator
sliding method
on Iterable traits
on trait Iterator
Smalltalk language
SML language
snoc
Some class
sort
insertion 1 2
merge
sort method
on class List
sortBy method
on Seq traits
sorted method
on Seq traits
SortedMap trait
SortedSet trait
sortInPlace method
on mutable.IndexedSeq traits
sortInPlaceBy method
on mutable.IndexedSeq traits
sortInPlaceWith method
a b c d e f g h i j k l m n o p q r s t u v w y z
on mutable.IndexedSeq traits
sortWith method
on class List
on Seq traits
source code, downloading, see example code
source files, naming of
span method
on class List
on Iterable traits
specifier tokens
for end markers
specifiers, access, see access modifiers
specs2 1 2
split method
on class String
splitAt method
on class List
on Iterable traits
stack, the
and tail-recursive functions
and thrown exceptions
and variables captured by closures
stackable modifications
standalone objects
a b c d e f g h i j k l m n o p q r s t u v w y z
startsWith method
on Seq traits
static members
static typing
Steele, Guy
Strachey, Christopher
String class
methods
stripMargin (via StringOps)
StringBuilder class
stringly typed code
StringOps class, see also String class
strings
formatting
interpolated (processed)
iterating through the characters of
literals 1 2
long
raw
treating like a sequence (via StringOps)
structural subtyping
Structure and Interpretation of Computer Programs (Abelson, et. al.)
style recommendations
prefer classes to tuples when data combination has meaning
a b c d e f g h i j k l m n o p q r s t u v w y z
prefer vals, immutable objects, and methods without side effects
use extension methods with restraint
subclasses
defining
subsetOf method
on Set traits
subtyping
and type parameters
nominal vs. structural
versus subclassing
subtyping polymorphism
sum method
on Iterable traits
on trait Iterator
sum of products
sum types
summon method
super references
special treatment in traits
superclasses
invoking constructor on
supertype
Sussman, Gerald J.
switch statement (Java)
a b c d e f g h i j k l m n o p q r s t u v w y z
T
tabulate method
on Iterable objects
on object List
tail recursion
tail method
on class List 1 2
on Iterable traits
tail recursion
optimization
verifying with @tailrec
tailrec annotation
take method
on class List
on Iterable traits
on trait Iterator
takeRight method
on Iterable traits
takeWhile method
on class List
on Iterable traits
on trait Iterator
target typing
template, definition of
a b c d e f g h i j k l m n o p q r s t u v w y z
term inference
term, in function literals
test suites
testing 1 2
unit
Thinking in Java (Eckel)
this
throw expressions
tiny types 1 2
to method
on class Int (via RichInt) 1 2 3
on collections
on Iterable traits
on trait Iterator
on views
toArray method
on class List
on Iterable traits
on trait Iterator
toIndexedSeq method
on Iterable traits
on trait Iterator
toInt method
on class String (via StringOps)
a b c d e f g h i j k l m n o p q r s t u v w y z
toIterable method
on Iterable traits
on trait Iterator
toList method
on class ListBuffer
on class Array 1 2
on Iterable traits
on trait Iterator
toMap method
on Iterable traits
on trait Iterator
Torreborre, Eric
toSeq method
on Iterable traits
on trait Iterator
toSet method
on Iterable traits
on trait Iterator
toString method 1 2
generated for case classes 1 2
on class Any
overriding
total function, see complete function
traits, see also mixin composition
a b c d e f g h i j k l m n o p q r s t u v w y z
and abstract parameters
generic 1 2
initializing
linearization of
mixing in
transparent
transformers
transparent traits
TreeMap class
TreeSet class
TrieMap class
trimEnd method
on trait Buffer
trimStart method
on trait Buffer
true value
try expressions
tuple patterns
Tuple2 trait
tuples
creating and using
result of → operation
when to use a class instead
type constructors
a b c d e f g h i j k l m n o p q r s t u v w y z
type parameters
lower bounds
type aliases 1 2 3
type annotations 1 2 3
for debugging
type ascriptions
type casts, see casting
type erasure
type inference 1 2 3
Hindley-Milner style
the algorithm
type keyword
in type alias definitions 1 2
type members
type parameterization, see parameterized types
type parameters
upper bounds
type tests
with isInstanceOf
with typed patterns (preferred style)
type-driven design
typeclass derivation 1 2 3
typeclasses
typed patterns
a b c d e f g h i j k l m n o p q r s t u v w y z
types
abstract
bottom
cardinality of
enum
generic
ground
inhabitants
integral
intersection
numeric
opaque
path-dependent
primitive
product
refinement
result
return
runtime
single abstract method
static
sum
typing
dynamic 1 2
a b c d e f g h i j k l m n o p q r s t u v w y z
static
target
U
unary operations 1 2
unchecked annotation 1 2
unfold method
on Iterable objects
Unicode
Unified Modeling Language Reference Manual, The (Rumbaugh, et. al.)
uniform access principle
uninitialized
used to initialize a field to its default value
union method
on Set traits
Unit class
unit testing 1 2 3
unit value 1 2 3
universal apply methods
universal equality
unnamed package
until method
on class Int (via RichInt) 1 2 3
untupling
parameter
a b c d e f g h i j k l m n o p q r s t u v w y z
unzip method
on class List
update method
on class Array
on Seq traits
on trait mutable.Map
on trait mutable.Set
updated method
on Seq traits
on trait immutable.Map
updatedWith method
on trait immutable.Map
updateWith method
on trait mutable.Map
upper bounds
least
V
vals, see also variables
abstract
as fields
conditional initialization of
defining
lazy
preferring over vars
a b c d e f g h i j k l m n o p q r s t u v w y z
referencing mutable objects
“val” on class parameters
value classes
value parameterization
values method
on Map traits 1 2
valuesIterator method
on Map traits
van Rossum, Guido
variable patterns 1 2
variable-binding patterns
variable-length arguments, or “varargs”, see repeated parameters
variables
bound 1 2
captured by closures
defining
using patterns 1 2
fields
final (Java), see vals
free
instance
local
multiple definitions of
reassignable, see also vars
a b c d e f g h i j k l m n o p q r s t u v w y z
scope
shadowing
variance
annotations
compiler checking of
declaration-site
use-site
vars, see also variables
abstract
and mutable objects
as fields
defining
on class parameters
programming without
Vector class 1 2 3
VectorMap class
verifiable properties
view method
on Iterable traits 1 2
views
visibility
of givens
W
Wall, Larry
a b c d e f g h i j k l m n o p q r s t u v w y z
warnings, see compiler warnings
weak hash maps
while loops 1 2
as imperative style
wildcard given import
wildcard patterns 1 2
with keyword 1 2
withFilter method
on Iterable traits
on trait Iterator
Y
yada, yada, yada
yield keyword
in for expressions
Z
zip method
on class List
on Iterable traits
on trait Iterator
zipAll method
on Iterable traits
on trait Iterator
zipWithIndex method
on class List