Scala cookbook
Save time and trouble building object-oriented, functional, and concurrent applications with Scala 3. The latest edition of this comprehensive cookbook is packed with more than 250 ready-to-use recipes and 700 code examples to help you solve the most common problems when working with Scala and its p...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Sebastopol, California :
O'Reilly Media, Incorporated
[2021]
|
Edición: | Second edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631118206719 |
Tabla de Contenidos:
- Intro
- Copyright
- Table of Contents
- Preface
- Conventions Used in This Book
- Using Code Examples
- O'Reilly Online Learning
- How to Contact Us
- Acknowledgments
- Chapter 1. Command-Line Tasks
- 1.1 Getting Started with the Scala REPL
- Problem
- Solution
- Discussion
- See Also
- 1.2 Loading Source Code and JAR Files into the REPL
- Problem
- Solution
- Discussion
- 1.3 Getting Started with the Ammonite REPL
- Problem
- Solution
- Discussion
- 1.4 Compiling with scalac and Running with scala
- Problem
- Solution
- Discussion
- 1.5 Disassembling and Decompiling Scala Code
- Problem
- Solution
- Discussion
- See Also
- 1.6 Running JAR Files with Scala and Java
- Problem
- Solution
- Discussion
- See Also
- Chapter 2. Strings
- 2.1 Testing String Equality
- Problem
- Solution
- Discussion
- See Also
- 2.2 Creating Multiline Strings
- Problem
- Solution
- Discussion
- 2.3 Splitting Strings
- Problem
- Solution
- Discussion
- 2.4 Substituting Variables into Strings
- Problem
- Solution
- Discussion
- See Also
- 2.5 Formatting String Output
- Problem
- Solution
- Discussion
- See Also
- 2.6 Processing a String One Character at a Time
- Problem
- Solution
- Discussion
- A Complete Example
- See Also
- 2.7 Finding Patterns in Strings
- Problem
- Solution
- Discussion
- See Also
- 2.8 Replacing Patterns in Strings
- Problem
- Solution
- See Also
- 2.9 Extracting Parts of a String That Match Patterns
- Problem
- Solution
- Discussion
- See Also
- 2.10 Accessing a Character in a String
- Problem
- Solution
- Discussion
- 2.11 Creating Your Own String Interpolator
- Problem
- Solution
- Discussion
- See Also
- 2.12 Creating Random Strings
- Problem
- Solution
- Discussion
- See Also
- Chapter 3. Numbers and Dates
- 3.1 Parsing a Number from a String.
- Problem
- Solution
- Discussion
- See Also
- 3.2 Converting Between Numeric Types (Casting)
- Problem
- Solution
- Discussion
- 3.3 Overriding the Default Numeric Type
- Problem
- Solution
- Discussion
- 3.4 Replacements for ++ and −−
- Problem
- Solution
- Discussion
- 3.5 Comparing Floating-Point Numbers
- Problem
- Solution
- Discussion
- See Also
- 3.6 Handling Large Numbers
- Problem
- Solution
- Discussion
- See Also
- 3.7 Generating Random Numbers
- Problem
- Solution
- Discussion
- 3.8 Formatting Numbers and Currency
- Problem
- Solution
- Locales
- Discussion
- 3.9 Creating New Date and Time Instances
- Problem
- Solution
- 3.10 Calculating the Difference Between Two Dates
- Problem
- Solution
- Discussion
- 3.11 Formatting Dates
- Problem
- Solution
- 3.12 Parsing Strings into Dates
- Problem
- Solution
- Chapter 4. Control Structures
- for Loops and for Expressions
- if/then/else-if Expressions
- match Expressions and Pattern Matching
- try/catch/finally Blocks
- while Loops
- Control Structures as a Defining Feature of Programming Languages
- 4.1 Looping over Data Structures with for
- Problem
- Solution
- Discussion
- See Also
- 4.2 Using for Loops with Multiple Counters
- Problem
- Solution
- Discussion
- See Also
- 4.3 Using a for Loop with Embedded if Statements (Guards)
- Problem
- Solution
- Discussion
- 4.4 Creating a New Collection from an Existing Collection with for/yield
- Problem
- Solution
- Discussion
- See Also
- 4.5 Using the if Construct Like a Ternary Operator
- Problem
- Solution
- Discussion
- 4.6 Using a Match Expression Like a switch Statement
- Problem
- Solution
- Discussion
- See Also
- 4.7 Matching Multiple Conditions with One Case Statement
- Problem
- Solution
- See Also.
- 4.8 Assigning the Result of a Match Expression to a Variable
- Problem
- Solution
- Discussion
- 4.9 Accessing the Value of the Default Case in a Match Expression
- Problem
- Solution
- Discussion
- 4.10 Using Pattern Matching in Match Expressions
- Problem
- Solution
- Discussion
- See Also
- 4.11 Using Enums and Case Classes in match Expressions
- Problem
- Solution
- Discussion
- 4.12 Adding if Expressions (Guards) to Case Statements
- Problem
- Solution
- Discussion
- 4.13 Using a Match Expression Instead of isInstanceOf
- Problem
- Solution
- Discussion
- See Also
- 4.14 Working with a List in a Match Expression
- Problem
- Solution
- Discussion
- See Also
- 4.15 Matching One or More Exceptions with try/catch
- Problem
- Solution
- Discussion
- See Also
- 4.16 Declaring a Variable Before Using It in a try/catch/finally Block
- Problem
- Solution
- Discussion
- See Also
- 4.17 Creating Your Own Control Structures
- Problem
- Solution
- Discussion
- See Also
- Chapter 5. Classes
- Classes and Case Classes
- 5.1 Choosing from Domain Modeling Options
- Problem
- Solution
- Discussion
- See Also
- 5.2 Creating a Primary Constructor
- Problem
- Solution
- Discussion
- 5.3 Controlling the Visibility of Constructor Fields
- Problem
- Solution
- Discussion
- See Also
- 5.4 Defining Auxiliary Constructors for Classes
- Problem
- Solution
- Discussion
- 5.5 Defining a Private Primary Constructor
- Problem
- Solution
- Discussion
- 5.6 Providing Default Values for Constructor Parameters
- Problem
- Solution
- Discussion
- 5.7 Handling Constructor Parameters When Extending a Class
- Problem
- Solution
- Discussion
- 5.8 Calling a Superclass Constructor
- Problem
- Solution
- Discussion
- 5.9 Defining an equals Method (Object Equality)
- Problem
- Solution
- Discussion.
- See Also
- 5.10 Preventing Accessor and Mutator Methods from Being Generated
- Problem
- Solution
- Discussion
- 5.11 Overriding Default Accessors and Mutators
- Problem
- Solution
- Discussion
- 5.12 Assigning a Block or Function to a (lazy) Field
- Problem
- Solution
- Discussion
- See Also
- 5.13 Setting Uninitialized var Field Types
- Problem
- Solution
- Discussion
- See Also
- 5.14 Generating Boilerplate Code with Case Classes
- Problem
- Solution
- Discussion
- See Also
- 5.15 Defining Auxiliary Constructors for Case Classes
- Problem
- Solution
- See Also
- Chapter 6. Traits and Enums
- 6.1 Using a Trait as an Interface
- Problem
- Solution
- Discussion
- See Also
- 6.2 Defining Abstract Fields in Traits
- Problem
- Solution
- Discussion
- See Also
- 6.3 Using a Trait Like an Abstract Class
- Problem
- Solution
- Discussion
- See Also
- 6.4 Using Traits as Mixins
- Problem
- Solution
- Discussion
- See Also
- 6.5 Resolving Method Name Conflicts and Understanding super
- Problem
- Solution
- Discussion
- See Also
- 6.6 Marking Traits So They Can Only Be Used by Subclasses of a Certain Type
- Problem
- Solution
- Discussion
- See Also
- 6.7 Ensuring a Trait Can Only Be Added to a Type That Has a Specific Method
- Problem
- Solution
- Discussion
- 6.8 Limiting Which Classes Can Use a Trait by Inheritance
- Problem
- Solution
- Discussion
- 6.9 Working with Parameterized Traits
- Problem
- Solution
- Discussion
- 6.10 Using Trait Parameters
- Problem
- Solution
- Discussion
- 6.11 Using Traits to Create Modules
- Problem
- Solution
- Discussion
- See Also
- 6.12 How to Create Sets of Named Values with Enums
- Problem
- Solution
- Discussion
- See Also
- 6.13 Modeling Algebraic Data Types with Enums
- Problem
- Solution
- Discussion
- See Also.
- Chapter 7. Objects
- 7.1 Casting Objects
- Problem
- Solution
- Discussion
- 7.2 Passing a Class Type with the classOf Method
- Problem
- Solution
- Discussion
- See Also
- 7.3 Creating Singletons with object
- Problem
- Solution
- Discussion
- See Also
- 7.4 Creating Static Members with Companion Objects
- Problem
- Solution
- Discussion
- See Also
- 7.5 Using apply Methods in Objects as Constructors
- Problem
- Solution
- Discussion
- See Also
- 7.6 Implementing a Static Factory with apply
- Problem
- Solution
- Discussion
- See Also
- 7.7 Reifying Traits as Objects
- Problem
- Solution
- Discussion
- See Also
- 7.8 Implementing Pattern Matching with unapply
- Problem
- Solution
- See Also
- Chapter 8. Methods
- 8.1 Controlling Method Scope (Access Modifiers)
- Problem
- Solution
- Discussion
- 8.2 Calling a Method on a Superclass or Trait
- Problem
- Solution
- 8.3 Using Parameter Names When Calling a Method
- Problem
- Solution
- Discussion
- 8.4 Setting Default Values for Method Parameters
- Problem
- Solution
- Discussion
- 8.5 Creating Methods That Take Variable-Argument Fields
- Problem
- Solution
- Discussion
- 8.6 Forcing Callers to Leave Parentheses Off Accessor Methods
- Problem
- Solution
- Discussion
- See Also
- 8.7 Declaring That a Method Can Throw an Exception
- Problem
- Solution
- Discussion
- See Also
- 8.8 Supporting a Fluent Style of Programming
- Problem
- Solution
- Discussion
- See Also
- 8.9 Adding New Methods to Closed Classes with Extension Methods
- Problem
- Solution
- Discussion
- See Also
- Chapter 9. Packaging and Imports
- 9.1 Packaging with the Curly Braces Style Notation
- Problem
- Solution
- Discussion
- 9.2 Importing One or More Members
- Problem
- Solution
- Discussion
- 9.3 Renaming Members on Import
- Problem
- Solution.
- Discussion.