Kotlin Essentials 9788396684714, 9788396684707

212 91 25MB

English Year 2022

Report DMCA / Copyright

DOWNLOAD FILE

Kotlin Essentials
 9788396684714, 9788396684707

Table of contents :
Table of Contents
Introduction
For whom is this book written?
What will be covered?
The Kotlin for Developers series
My story
Conventions
Code conventions
Acknowledgments
What is Kotlin?
Kotlin platforms
The Kotlin IDE
Where do we use Kotlin?
Your first program in Kotlin
Live templates
What is under the hood on JVM?
Summary
Variables
Basic types, their literals and operations
Numbers
Booleans
Characters
Strings
Summary
Conditional statements: if, when, try, and while
if-statement
when-statement
when-statement with a value
is check
Explicit casting
Smart-casting
While and do-while statements
Summary
Functions
Single-expression functions
Functions on all levels
Parameters and arguments
Unit return type
Vararg parameters
Named parameter syntax and default arguments
Function overloading
Infix syntax
Function formatting
Summary
The power of the for-loop
Ranges
Break and continue
Use cases
Summary
Nullability
Safe calls
Not-null assertion
Smart-casting
The Elvis operator
Extensions on nullable types
null is our friend
lateinit
Summary
Classes
Member functions
Properties
Constructors
Classes representing data in Kotlin and Java
Inner classes
Summary
Inheritance
Overriding elements
Parents with non-empty constructors
Super call
Abstract class
Interfaces
Visibility
Any
Summary
Data classes
Transforming to a string
Objects equality
Hash code
Copying objects
Destructuring
When and how should we use destructuring?
Data class limitations
Prefer data classes instead of tuples
Summary
Objects
Object expressions
Object declaration
Companion objects
Data object declarations
Constant values
Summary
Exceptions
Throwing exceptions
Defining exceptions
Catching exceptions
A try-catch block used as an expression
The finally block
Important exceptions
The hierarchy of exceptions
Summary
Enum classes
Data in enum values
Enum classes with custom methods
Summary
Sealed classes and interfaces
Sealed classes and when expressions
Sealed vs enum
Use cases
Summary
Annotation classes
Meta-annotations
Annotating the primary constructor
List literals
Summary
Extensions
Extension functions under the hood
Extension properties
Extensions vs members
Extension functions on object declarations
Member extension functions
Use cases
Summary
Collections
The hierarchy of interfaces
Mutable vs read-only types
Creating collections
Lists
Sets
Maps
Using arrays in practice
Summary
Operator overloading
An example of operator overloading
Arithmetic operators
The rangeUntil operator
The in operator
The iterator operator
The equality and inequality operators
Comparison operators
The indexed access operator
Augmented assignments
Unary prefix operators
Increment and decrement
The invoke operator
Precedence
Summary
The beauty of Kotlin’s type system
What is a type?
Why do we have types?
The relation between classes and types
Class vs type in practice
The relationship between types
The subtype of all the types: Nothing
The result type from return and throw
When is some code not reachable?
The type of null
Summary
Generics
Generic functions
Generic classes
Generic classes and nullability
Generic interfaces
Type parameters and inheritance
Type erasure
Generic constraints
Star projection
Summary
Final words

Polecaj historie