# V Documentation ## Introduction V is a statically typed compiled programming language designed for building maintainable software. It's similar to Go and its design has also been influenced by Oberon, Rust, Swift, and Python. V is a very simple language. Going through this documentation will take you about half an hour, and by the end of it you will have pretty much learned the entire language. The language promotes writing simple and clear code with minimal abstraction. Despite being simple, V gives the developer a lot of power. Anything you can do in other languages, you can do in V. ## Table of Contents
* [Hello world](#hello-world) * [Comments](#comments) * [Functions](#functions) * [Returning multiple values](#returning-multiple-values) * [Variable number of arguments](#variable-number-of-arguments) * [Symbol visibility](#symbol-visibility) * [Variables](#variables) * [Types](#types) * [Strings](#strings) * [Numbers](#numbers) * [Arrays](#arrays) * [Maps](#maps) * [Module imports](#module-imports) * [Statements & expressions](#statements--expressions) * [If](#if) * [In operator](#in-operator) * [For loop](#for-loop) * [Match](#match) * [Defer](#defer) * [Structs](#structs) * [Embedded structs](#embedded-structs) * [Default field values](#default-field-values) * [Short struct literal syntax](#short-struct-initialization-syntax) * [Access modifiers](#access-modifiers) * [Methods](#methods) | * [println](#println) * [Functions 2](#functions-2) * [Pure functions by default](#pure-functions-by-default) * [Mutable arguments](#mutable-arguments) * [Anonymous & high order functions](#anonymous--high-order-functions) * [References](#references) * [Modules](#modules) * [Constants](#constants) * [Types 2](#types-2) * [Interfaces](#interfaces) * [Enums](#enums) * [Sum types](#sum-types) * [Option/Result types & error handling](#optionresult-types-and-error-handling) * [Generics](#generics) * [Concurrency](#concurrency) * [Decoding JSON](#decoding-json) * [Testing](#testing) * [Memory management](#memory-management) * [ORM](#orm) | * [Writing documentation](#writing-documentation) * [Tools](#tools) * [vfmt](#vfmt) * [Profiling](#profiling) * [Advanced](#advanced) * [Memory-unsafe code](#memory-unsafe-code) * [Calling C functions from V](#calling-c-functions-from-v) * [Debugging generated C code](#debugging-generated-c-code) * [Conditional compilation](#conditional-compilation) * [Compile time pseudo variables](#compile-time-pseudo-variables) * [Compile-time reflection](#compile-time-reflection) * [Limited operator overloading](#limited-operator-overloading) * [Inline assembly](#inline-assembly) * [Translating C/C++ to V](#translating-cc-to-v) * [Hot code reloading](#hot-code-reloading) * [Cross compilation](#cross-compilation) * [Cross-platform shell scripts in V](#cross-platform-shell-scripts-in-v) * [Attributes](#attributes) * [Appendices](#appendices) * [Keywords](#appendix-i-keywords) * [Operators](#appendix-ii-operators) |