Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.

Scala for the Impatient

TaschenbuchKartoniert, Paperback
400 Seiten
Englisch
Pearson Educationerschienen am03.01.20233rd edition
Scala 3--A Clear, Concise Guide Scala 3 is concise, consistent, flexible, robust, and efficient, but there's a lot to learn and navigating features and improvements can be challenging. Scala for the Impatient, Third Edition, is a complete yet concise guide that reflects the major enhancements of Scala 3, from improved syntax and revamped type system to powerful contextual abstractions. This indispensable tutorial offers a faster, easier pathway for learning today's Scala. Horstmann--author of the programming classic, Core Java--covers everything working developers need to know, focusing on hands-on solutions, not academic theory. Given the size and scope of Scala 3, there's plenty to cover but it's presented in small chunks organized for quick access and easy understanding, with plenty of practical insights and focused sample code. Get started quickly with Scala 3 interpreter, syntax, tools, and current usageMaster core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and moreDesign and build better object-oriented code with Scala 3Use Scala for real-world programming tasks: working with files, regular expressions, and processesWork with higher-order functions and the powerful Scala collections libraryCreate concurrent programs with Scala futuresUnderstand the Scala type system, including revamped enums, intersection and union types, and enhanced type inferenceUse contextual abstractions to easily extend class hierarchies, enrich existing classes, perform automatic conversions, and elegantly hide tedious detailsApply advanced "power tools" such as annotations and given valuesDiscover how to "program with types," analyzing and generating types at compile timeGet a taste of what's now possible with Scala macros If you're a Java, Python, C++, or C# programmer who's new to Scala or functional programming--or even if you've already used earlier versions of Scala--this guide will help you write code that's more robust, more efficient, and more secure. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.mehr
Verfügbare Formate
TaschenbuchKartoniert, Paperback
EUR49,00
E-BookPDF1 - PDF WatermarkE-Book
EUR40,49
E-BookEPUBePub WasserzeichenE-Book
EUR44,49

Produkt

KlappentextScala 3--A Clear, Concise Guide Scala 3 is concise, consistent, flexible, robust, and efficient, but there's a lot to learn and navigating features and improvements can be challenging. Scala for the Impatient, Third Edition, is a complete yet concise guide that reflects the major enhancements of Scala 3, from improved syntax and revamped type system to powerful contextual abstractions. This indispensable tutorial offers a faster, easier pathway for learning today's Scala. Horstmann--author of the programming classic, Core Java--covers everything working developers need to know, focusing on hands-on solutions, not academic theory. Given the size and scope of Scala 3, there's plenty to cover but it's presented in small chunks organized for quick access and easy understanding, with plenty of practical insights and focused sample code. Get started quickly with Scala 3 interpreter, syntax, tools, and current usageMaster core language features: functions, arrays, maps, tuples, packages, imports, exception handling, and moreDesign and build better object-oriented code with Scala 3Use Scala for real-world programming tasks: working with files, regular expressions, and processesWork with higher-order functions and the powerful Scala collections libraryCreate concurrent programs with Scala futuresUnderstand the Scala type system, including revamped enums, intersection and union types, and enhanced type inferenceUse contextual abstractions to easily extend class hierarchies, enrich existing classes, perform automatic conversions, and elegantly hide tedious detailsApply advanced "power tools" such as annotations and given valuesDiscover how to "program with types," analyzing and generating types at compile timeGet a taste of what's now possible with Scala macros If you're a Java, Python, C++, or C# programmer who's new to Scala or functional programming--or even if you've already used earlier versions of Scala--this guide will help you write code that's more robust, more efficient, and more secure. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Details
ISBN/GTIN978-0-13-803365-1
ProduktartTaschenbuch
EinbandartKartoniert, Paperback
FormatTrade Paperback (USA)
Erscheinungsjahr2023
Erscheinungsdatum03.01.2023
Auflage3rd edition
Seiten400 Seiten
SpracheEnglisch
MasseBreite 177 mm, Höhe 228 mm, Dicke 22 mm
Gewicht634 g
Artikel-Nr.10115117

Inhalt/Kritik

Inhaltsverzeichnis
Foreword to the First Edition xixPreface xxiAbout the Author xxv Chapter 1: The Basics 11.1 The Scala Interpreter 11.2 Declaring Values and Variables 41.3 Commonly Used Types 51.4 Arithmetic and Operator Overloading 71.5 More about Calling Methods 81.6 The apply Method 91.7 Scaladoc 11Exercises 14 Chapter 2: Control Structures and Functions 172.1 Conditional Expressions 182.2 Statement Termination 202.3 Block Expressions and Assignments 212.4 Input and Output 222.5 Loops 232.6 More about the for Loop 252.7 Functions 272.8 Default and Named Arguments 292.9 Variable Arguments 302.10 The Main Function 312.11 Functions without Parameters 312.12 Lazy Values 322.13 Exceptions 33Exercises 36 Chapter 3: Working with Arrays 393.1 Fixed-Length Arrays 393.2 Variable-Length Arrays: Array Buffers 403.3 Traversing Arrays and Array Buffers 413.4 Transforming Arrays 423.5 Common Algorithms 443.6 Deciphering Scaladoc 453.7 Multidimensional Arrays 463.8 Interoperating with Java 47Exercises 48 Chapter 4: Maps, Options, and Tuples 514.1 Constructing a Map 524.2 Accessing Map Values 524.3 Updating Map Values 534.4 Iterating over Maps 544.5 Linked and Sorted Maps 544.6 Interoperating with Java 554.7 The Option Type 564.8 Tuples 574.9 Zipping 59Exercises 59 Chapter 5: Classes 635.1 Simple Classes and Parameterless Methods 635.2 Properties with Getters and Setters 655.3 Properties with Only Getters 675.4 Private Fields 685.5 Auxiliary Constructors 695.6 The Primary Constructor 705.7 Nested Classes 73Exercises 74 Chapter 6: Objects and Enumerations 776.1 Singletons 786.2 Companion Objects 786.3 Objects Extending a Class or Trait 796.4 The apply Method 806.5 Application Objects 816.6 Enumerations 81Exercises 83 Chapter 7: Packages, Imports, and Exports 857.1 Packages 867.2 Package Scope Nesting 877.3 Chained Package Clauses 887.4 Top-of-File Notation 887.5 Package-Level Functions and Variables 897.6 Package Visibility 897.7 Imports 907.8 Imports Can Be Anywhere 917.9 Renaming and Hiding Members 917.10 Implicit Imports 927.11 Exports 92Exercises 93 Chapter 8: Inheritance 978.1 Extending a Class 988.2 Overriding Methods 988.3 Type Checks and Casts 998.4 Superclass Construction 1008.5 Anonymous Subclasses 1018.6 Abstract Classes 1018.7 Abstract Fields 1028.8 Overriding Fields 1028.9 Open and Sealed Classes 1048.10 Protected Fields and Methods 1058.11 Construction Order 1058.12 The Scala Inheritance Hierarchy 1068.13 Object Equality 1098.14 Multiversal Equality 1108.15 Value Classes 111Exercises 112 Chapter 9: Files and Regular Expressions 1179.1 Reading Lines 1189.2 Reading Characters 1189.3 Reading Tokens and Numbers 1199.4 Reading from URLs and Other Sources 1209.5 Writing Files 1209.6 Visiting Directories 1209.7 Serialization 1219.8 Process Control 1229.9 Regular Expressions 1249.10 Regular Expression Groups 126Exercises 126 Chapter 10: Traits 12910.1 Why No Multiple Inheritance? 12910.2 Traits as Interfaces 13110.3 Traits with Concrete Methods 13210.4 Traits for Rich Interfaces 13310.5 Objects with Traits 13310.6 Layered Traits 13410.7 Overriding Abstract Methods in Traits 13510.8 Concrete Fields in Traits 13610.9 Abstract Fields in Traits 13710.10 Trait Construction Order 13810.11 Trait Constructors with Parameters 13910.12 Traits Extending Classes 14010.13 What Happens under the Hood 14110.14 Transparent Traits 14310.15 Self Types 143Exercises 145 Chapter 11: Operators 14911.1 Identifiers 15011.2 Infix Operators 15111.3 Unary Operators 15211.4 Assignment Operators 15311.5 Precedence 15311.6 Associativity 15411.7 The apply and update Methods 15511.8 The unapply Method 15511.9 The unapplySeq Method 15711.10 Alternative Forms of the unapply and unapplySeq Methods 15811.11 Dynamic Invocation 15911.12 Typesafe Selection and Application 162Exercises 163 Chapter 12: Higher-Order Functions 16912.1 Functions as Values 17012.2 Anonymous Functions 17012.3 Parameters That Are Functions 17112.4 Parameter Inference 17212.5 Useful Higher-Order Functions 17312.6 Closures 17412.7 Interoperability with Lambda Expressions 17512.8 Currying 17612.9 Methods for Composing, Currying, and Tupling 17712.10 Control Abstractions 17812.11 Nonlocal Returns 179Exercises 180 Chapter 13: Collections 18313.1 The Main Collections Traits 18413.2 Mutable and Immutable Collections 18513.3 Sequences 18713.4 Lists 18813.5 Sets 18913.6 Operators for Adding or Removing Elements 19013.7 Common Methods 19313.8 Mapping a Function 19513.9 Reducing, Folding, and Scanning 19713.10 Zipping 20013.11 Iterators 20113.12 Lazy Lists 20213.13 Interoperability with Java Collections 204Exercises 205 Chapter 14: Pattern Matching 20914.1 A Better Switch 21014.2 Guards 21114.3 Variables in Patterns 21114.4 Type Patterns 21214.5 The Matchable Trait 21314.6 Matching Arrays, Lists, and Tuples 21414.7 Extractors 21614.8 Patterns in Variable Declarations 21714.9 Patterns in for Expressions 21814.10 Case Classes 21914.11 Matching Nested Structures 22114.12 Sealed Classes 22214.13 Parameterized Enumerations 22314.14 Partial Functions 22414.15 Infix Notation in case Clauses 225Exercises 226 Chapter 15: Annotations 23115.1 What Are Annotations? 23215.2 Annotation Placement 23215.3 Annotation Arguments 23315.4 Annotations for Java Features 23415.5 Annotations for Optimizations 23615.6 Annotations for Errors and Warnings 23815.7 Annotation Declarations 239Exercises 241 Chapter 16: Futures 24516.1 Running Tasks in the Future 24616.2 Waiting for Results 24816.3 The Try Class 24916.4 Callbacks 25016.5 Composing Future Tasks 25116.6 Other Future Transformations 25316.7 Methods in the Future Object 25516.8 Promises 25716.9 Execution Contexts 258Exercises 259 Chapter 17: Type Parameters 26317.1 Generic Classes 26417.2 Generic Functions 26417.3 Bounds for Type Variables 26517.4 Context Bounds 26617.5 The ClassTag Context Bound 26717.6 Multiple Bounds 26717.7 Type Constraints 26717.8 Variance 26817.9 Co- and Contravariant Positions 27017.10 Objects Can't Be Generic 27117.11 Wildcards 27217.12 Polymorphic Functions 273Exercises 274 Chapter 18: Advanced Types 27718.1 Union Types 27718.2 Intersection Types 27818.3 Type Aliases 27918.4 Structural Types 28118.5 Literal Types 28318.6 The Singleton Type Operator 28418.7 Abstract Types 28618.8 Dependent Types 28718.9 Abstract Type Bounds 289Exercises 290 Chapter 19: Contextual Abstractions 29519.1 Context Parameters 29619.2 More about Context Parameters 29719.3 Declaring Given Instances 29919.4 Givens in for and match Expressions 30119.5 Importing Givens 30219.6 Extension Methods 30319.7 Where Extension Methods Are Found 30419.8 Implicit Conversions 30619.9 Rules for Implicit Conversions 30719.10 Importing Implicit Conversions 30819.11 Context Functions 30919.12 Evidence 31119.13 The @implicitNotFound Annotation 312Exercises 313 Chapter 20: Type-Level Programming 31720.1 Match Types 31820.2 Heterogeneous Lists 31920.3 Literal Type Arithmetic 32220.4 Inline Code 32320.5 Type Classes 32620.6 Mirrors 32820.7 Type Class Derivation 33020.8 Higher-Kinded Types 33220.9 Type Lambdas 33420.10 A Brief Introduction into Macros 335Exercises 339 Index 343mehr

Autor

Cay S. Horstmann is principal author of Core Java, Volumes I and II, Twelfth Edition (Pearson, 2022), and author of Core Java for the Impatient, Third Edition (Addison-Wesley, 2022), and Modern JavaScript for the Impatient (Addison-Wesley, 2020). He has written more than a dozen other books for professional programmers and computer science students. He is professor emeritus of computer science at San Jose State University and a Java Champion.