diff --git a/hands-on_dlang.md b/hands-on_dlang.md index ad47ff8..218bc33 100644 --- a/hands-on_dlang.md +++ b/hands-on_dlang.md @@ -1,90 +1,89 @@ # Hands-On DLang -* [Hands-On DLang](#hands-on-dlang) - * [Setup](#setup) - * [Installing DMD and DUB](#installing-dmd-and-dub) - * [OS X](#os-x) - * [Installing with Homebrew (recommended)](#installing-with-homebrew-recommended) - * [Installing locally using the install script](#installing-locally-using-the-install-script) - * [Installing using the installer](#installing-using-the-installer) - * [Windows](#windows) - * [Recommended editor setup](#recommended-editor-setup) - * [Installation of Visual Studio Code](#installation-of-visual-studio-code) - * [Extension setup](#extension-setup) - * [Project setup and compiling](#project-setup-and-compiling) - * [Without DUB](#without-dub) - * [With DUB](#with-dub) - * [Basics](#basics) - * [Hello World](#hello-world) - * [Imports and modules](#imports-and-modules) - * [Selective imports](#selective-imports) - * [Scoped imports](#scoped-imports) - * [Imports match files and directories](#imports-match-files-and-directories) - * [Basic Types](#basic-types) - * [Type conversion](#type-conversion) - * [Type properties](#type-properties) - * [Indexing](#indexing) - * [Variable declarations](#variable-declarations) - * [Mutability](#mutability) - * [`immutable`](#immutable) - * [`const`](#const) - * [Functions](#functions) - * [Return type deduction](#return-type-deduction) - * [Default arguments](#default-arguments) - * [Local functions](#local-functions) - * [Memory and pointers](#memory-and-pointers) - * [Memory safety](#memory-safety) - * [Structs](#structs) - * [Member functions](#member-functions) - * [`const` member functions](#const-member-functions) - * [`static` member functions](#static-member-functions) - * [Arrays](#arrays) - * [Static arrays](#static-arrays) - * [Dynamic arrays](#dynamic-arrays) - * [Array operations and properties](#array-operations-and-properties) - * [Slices](#slices) - * [Alias and `string`s](#alias-and-strings) - * [Control flow](#control-flow) - * [if…else](#ifelse) - * [switch…case](#switchcase) - * [Old fashioned loops](#old-fashioned-loops) - * [Breaking out of outer loops](#breaking-out-of-outer-loops) - * [`foreach` loops](#foreach-loops) - * [Element iteration](#element-iteration) - * [Access by reference](#access-by-reference) - * [Iterate `n` times](#iterate-n-times) - * [Iteration with index counter](#iteration-with-index-counter) - * [Ranges](#ranges) - * [Laziness](#laziness) - * [Copying ranges](#copying-ranges) - * [`RandomAccessRange`s](#randomaccessranges) - * [Lazy range algorithms](#lazy-range-algorithms) - * [Associative arrays](#associative-arrays) - * [Classes](#classes) - * [Inheritance](#inheritance) - * [Final and abstract member functions](#final-and-abstract-member-functions) - * [Checking for identity](#checking-for-identity) - * [Interfaces](#interfaces) - * [Templates](#templates) - * [Template functions](#template-functions) - * [Other templates](#other-templates) - * [Template value parameters](#template-value-parameters) - * [Other template parameters](#other-template-parameters) - * [Delegates](#delegates) - * [Functions as arguments](#functions-as-arguments) - * [Local functions with context](#local-functions-with-context) - * [Anonymous functions and lambdas](#anonymous-functions-and-lambdas) - * [Exceptions](#exceptions) - * [`nothrow`](#nothrow) - * [Gems](#gems) - * [Uniform function call syntax (UFCS)](#uniform-function-call-syntax-ufcs) - * [Scope guards](#scope-guards) - * [Range algorithms](#range-algorithms) - * [Unittesting](#unittesting) - * [Example](#example) - * [Executing unittests](#executing-unittests) - * [Code coverage](#code-coverage) - * [String mixins](#string-mixins) +* [Setup](#setup) + * [Installing DMD and DUB](#installing-dmd-and-dub) + * [OS X](#os-x) + * [Installing with Homebrew (recommended)](#installing-with-homebrew-recommended) + * [Installing locally using the install script](#installing-locally-using-the-install-script) + * [Installing using the installer](#installing-using-the-installer) + * [Windows](#windows) + * [Recommended editor setup](#recommended-editor-setup) + * [Installation of Visual Studio Code](#installation-of-visual-studio-code) + * [Extension setup](#extension-setup) + * [Project setup and compiling](#project-setup-and-compiling) + * [Without DUB](#without-dub) + * [With DUB](#with-dub) +* [Basics](#basics) + * [Hello World](#hello-world) + * [Imports and modules](#imports-and-modules) + * [Selective imports](#selective-imports) + * [Scoped imports](#scoped-imports) + * [Imports match files and directories](#imports-match-files-and-directories) + * [Basic Types](#basic-types) + * [Type conversion](#type-conversion) + * [Type properties](#type-properties) + * [Indexing](#indexing) + * [Variable declarations](#variable-declarations) + * [Mutability](#mutability) + * [`immutable`](#immutable) + * [`const`](#const) + * [Functions](#functions) + * [Return type deduction](#return-type-deduction) + * [Default arguments](#default-arguments) + * [Local functions](#local-functions) + * [Memory and pointers](#memory-and-pointers) + * [Memory safety](#memory-safety) + * [Structs](#structs) + * [Member functions](#member-functions) + * [`const` member functions](#const-member-functions) + * [`static` member functions](#static-member-functions) + * [Arrays](#arrays) + * [Static arrays](#static-arrays) + * [Dynamic arrays](#dynamic-arrays) + * [Array operations and properties](#array-operations-and-properties) + * [Slices](#slices) + * [Alias and `string`s](#alias-and-strings) + * [Control flow](#control-flow) + * [if…else](#ifelse) + * [switch…case](#switchcase) + * [Old fashioned loops](#old-fashioned-loops) + * [Breaking out of outer loops](#breaking-out-of-outer-loops) + * [`foreach` loops](#foreach-loops) + * [Element iteration](#element-iteration) + * [Access by reference](#access-by-reference) + * [Iterate `n` times](#iterate-n-times) + * [Iteration with index counter](#iteration-with-index-counter) + * [Ranges](#ranges) + * [Laziness](#laziness) + * [Copying ranges](#copying-ranges) + * [`RandomAccessRange`s](#randomaccessranges) + * [Lazy range algorithms](#lazy-range-algorithms) + * [Associative arrays](#associative-arrays) + * [Classes](#classes) + * [Inheritance](#inheritance) + * [Final and abstract member functions](#final-and-abstract-member-functions) + * [Checking for identity](#checking-for-identity) + * [Interfaces](#interfaces) + * [Templates](#templates) + * [Template functions](#template-functions) + * [Other templates](#other-templates) + * [Template value parameters](#template-value-parameters) + * [Other template parameters](#other-template-parameters) + * [Delegates](#delegates) + * [Functions as arguments](#functions-as-arguments) + * [Local functions with context](#local-functions-with-context) + * [Anonymous functions and lambdas](#anonymous-functions-and-lambdas) + * [Exceptions](#exceptions) + * [`nothrow`](#nothrow) +* [Gems](#gems) + * [Uniform function call syntax (UFCS)](#uniform-function-call-syntax-ufcs) + * [Scope guards](#scope-guards) + * [Range algorithms](#range-algorithms) + * [Unittesting](#unittesting) + * [Example](#example) + * [Executing unittests](#executing-unittests) + * [Code coverage](#code-coverage) + * [String mixins](#string-mixins) ## Setup