Home
Download
Blog
Use Cases
Overview
Games
Web
Mobile
Desktop
Command Line
Cross Platform APIs
Who Uses Haxe
Haxe Foundation
About The Foundation
Who is who
Jobs
Supported Projects
Support Plans
Donate
Branding
Shop
Open Source
Contact
Support Plans
Learn Haxe
Introduction
Manual
Code Cookbook
API Documentation
Videos
Try Haxe online
Haxelib
Connect
GitHub
Bug reports
Stack Overflow
Forums
Discord
Gitter
Blog
Facebook
#haxe
@haxelang
@haxe_org
Contact
Implementation details
Sys
Introduction
What is Haxe?
About this Document
Authors and contributions
License
Hello World
History
Types
Basic Types
Numeric types
Overflow
Bool
Void
Nullability
Optional Arguments and Nullability
Class Instance
Class constructor
Inheritance
Interfaces
Abstract Class
Enum Instance
Enum Constructor
Using enums
Anonymous Structure
JSON for Structure Values
Class Notation for Structure Types
Optional Fields
Impact on Performance
Extensions
Function Type
Optional Arguments
Default values
Dynamic
Dynamic with Type Parameter
Dynamic access
Any type
Abstract
Access to Underlying Data
Implicit Casts
Operator Overloading
Array Access
Enum abstracts
Forwarding abstract fields
Core-type abstracts
Monomorph
Type System
Typedef
Type Parameters
Constraints
Defaults
Generic
Construction of generic type parameters
Variance
Unification
Between Class/Interface
Structural Subtyping
Monomorphs
Function Return
Common Base Type
Type Inference
Top-down Inference
Limitations
Modules and Paths
Module Sub-Types
Import
Import defaults / import.hx
Resolution Order
untyped
Class Fields
Variable
Property
Common accessor identifier combinations
Impact on the type system
Rules for getter and setter
Method
Overriding Methods
Effects of variance and access modifiers
Access Modifier
Visibility
Inline
Dynamic
Override
Static
Extern
Final
Expressions
Blocks
Literals
Array Declaration
Map Declaration
Object Declaration
Constants
Operators
Unary Operators
Binary Operators
Ternary Operator
Precedence
Overloading and macros
Field Access
Null coalescing
Array Access
Function Call
var and final
Local static variables
Local Functions
new
for
while
do-while
if
switch
throw
try/catch
return
break
continue
cast
unsafe cast
safe cast
type check
inline
Language Features
Conditional Compilation
Target defines
Target-Specific Files
Custom defines documentation
Externs
Native Metadata
Implementing Dynamic
Static Extension
In the Haxe Standard Library
Static Extension Metadata
Pattern Matching
Introduction
Enum matching
Variable capture
Structure matching
Array matching
Or patterns
Guards
Match on multiple values
Extractors
Exhaustiveness checks
Useless pattern checks
Single pattern check
String Interpolation
Array Comprehension
Map Comprehension
Iterators
Function Bindings
Metadata
Custom metadata documentation
Access Control
Inline Constructors
Compiler Usage
HXML
Global Compiler Flags
Error Reporting
Compiler Features
Built-in Compiler Metadata
Dead Code Elimination
Compiler Services
Overview
Field access completion
Call argument completion
Type path completion
Usage completion
Position completion
Top-level completion
Completion server
Resources
Embedding resources
Retrieving text resources
Retrieving binary resources
Implementation details
Runtime Type Information
Static Analyzer
Loop unrolling
Tail Recursion Elimination (TRE)
Null Safety
Warnings
Macros
Macro Context
Arguments
ExprOf
Constant Expressions
Rest Argument
Reification
Expression Reification
Type Reification
Class Reification
Tools
Type Building
Enum building
@:autoBuild
@:genericBuild
Limitations
Macro-in-Macro
Static extension
Build Order
Type Parameters
Persistent Variables
Initialization Macros
Standard Library
String
String literals
Unicode
Encoding
Data Structures
Array
Vector
List
GenericStack
Map
Option
Regular Expressions
Matching
Groups
Replace
Split
Map
Implementation Details
Math
Special Numbers
Mathematical Errors
Integer Math
Extensions
Lambda
Template
Reflection
Serialization
Serialization format
Xml
Getting started with Xml
Parsing Xml
Encoding Xml
Simplified Xml access
Json
Parsing JSON
Encoding JSON
Implementation details
Input/Output
Sys
Threading
Standard IO Streams
Process
Remoting
Remoting Connection
Implementation details
Unit Testing
Haxe 3 Compatibility
Haxelib
Target Details
Accessing Target-specific Syntax
JavaScript
Getting started with Haxe/JavaScript
ECMAScript 6 class generation
Using external JavaScript libraries
JavaScript target Metadata
Exposing Haxe classes for JavaScript
Loading extern classes using "require" function
Flash
Getting started with Haxe/Flash
Embedding resources
Using external Flash libraries
Flash target Metadata
Neko
Getting started with Haxe/Neko
PHP
Getting started with Haxe/PHP
Defines
C++
Getting started with Haxe/C++
The Hxcpp Build Environment
Build.xml
Structure of the top-level
Files
Tags
Targets
Compiler
Linker
Stripper
The Haxe Target
Xml Injection
Defines
The Hxcpp Cache
Threads And Stacks
Cppia
Getting started with Haxe/Cppia
Java
Getting started with Haxe/Java
JVM
Getting started with Haxe/JVM
C#
Getting started with Haxe/C#
.NET version and external libraries
Haxe/C# Defines
Haxe/C# Metadata
Injecting raw C# code
Python
Getting started with Haxe/Python
Lua
Getting started with Haxe/Lua
Using external Lua libraries
Version flags
Multireturns
HashLink
Getting started with Haxe/HashLink
HashLink/C Compilation
Debugging
Logging and Trace
Position Information Parameter
Tracing Types
IDE Integration
Debugging in JavaScript
Source Maps
Source Maps in JavaScript
Source Maps in PHP7
10.11
Input/Output
Haxe has two packages that group Input/Output utilities:
haxe.io
which is available for all targets.
sys.io
which is available for
sys targets
.
Implementation details
Contribute to this page
Sys