Haxe 概述

介绍 Haxe 语言,编译器,标准库和其他任何你需要的入门知识。

Haxe 语言简介

Haxe 编程语言是一种非常现代的高级编程语言。如果您已经熟悉 Java、C++、PHP、AS3 或任何类似的面向对象语言,那么学习它是非常容易的。Haxe 语言的更多特性:

  • 通用的

  • 严格类型,具有类型推断

  • 编译(到多种语言目标/平台,包括 VM 字节码)

  • 词法性质的(lexically-scoped)

  • 一切都是一个表达式

  • 错误处理的异常

  • 标准库包括特定于目标平台的模块,以及所有目标通用的模块

  • 支持面向对象、泛型和函数式编程

  • 熟悉的语法

  • Haxe 语言故意保持相当简单、优雅和实用,以适应编译大量不同的目标平台。

由于 Haxe 语言是专门为 Haxe 工具包设计的,所以我们特别注意了它的灵活性。因此,该语言可以轻松地适应开发项目中针对的不同平台的原生行为。这使得非常高效的跨平台开发成为可能,最终节省了时间和资源。

查看 Haxe 语言功能介绍,了解一些主要的语言功能。

Haxe 由一种高级的开源编程语言和一个编译器组成。它允许将使用面向 ECMAScript 语法编写的程序编译为多种目标语言。使用适当的抽象,可以维护一个可编译为多个目标的代码库。Haxe 是强类型的,但是类型系统可以在需要的地方被颠覆。利用类型信息,Haxe 类型系统可以在编译时检测错误,而这些错误在目标语言的运行时才会被注意到。此外,编译器可以使用类型信息来生成优化的、健壮的代码。

目前,有 9 种目标语言支持不同的用例:

Name

Output type

Main usages

JavaScript

Sourcecode

Browser, Desktop, Mobile, Server

Neko

Bytecode

Desktop, Server, CLI

HashLink

Bytecode

Desktop, Mobile, Game consoles

PHP

Sourcecode

Server

Python

Sourcecode

Desktop, Server

Lua

Sourcecode

Desktop, Scripting

C++

Sourcecode

Desktop, Mobile, Server, Game consoles

Flash

Bytecode

Desktop, Mobile

Java

Sourcecode

Desktop, Mobile, Server

JVM

Bytecode

Desktop, Mobile, Server

C#

Sourcecode

Desktop, Mobile, Server

类型 介绍了 Haxe 中的 7 种不同类型以及它们之间的互动方式。类型系统 中继续讨论类型,其中解释了unificationtype parameterstype parameters等特性。

Class Fields 是关于 Haxe 类的结构的,其中涉及属性内联字段(inline fields)和泛型函数(generic functions)。

expression 中,可以看到如何通过使用表达式让程序做一些事情。

Haxe 语言特性 通过详细描述一些特性(如模式匹配、字符串插值和死代码消除(dead code elimination))总结了 Haxe 语言参考。

我们继续学习 Haxe 编译器参考,在编译器特性中进入高级特性之前,它首先处理 编译器使用 中的基础知识。最后,我们将在宏中冒险进入令人兴奋的 Haxe macro 领域,看看如何极大地简化一些常见任务。

标准库 中,我们将探索来自 Haxe 标准库的重要类型和概念。然后我们学习 Haxe 的包管理器在 haxelib

Haxe 去掉了许多目标差异,但有时与目标直接交互很重要,这是目标细节的主题。

Hello World

Haxe 编程语言的设计既简单又强大。它的语法很大程度上遵循 ECMAScript 标准,但在必要时有所偏离。下面的程序演示了用 Haxe 编写的“Hello World”:

/**
	多行注释用于文档。
**/
class Main {
	static public function main():Void {
		// 单行注释
		trace("Hello World");
	}
}

安装了 Haxe 后,这个程序保存在一个名为“Hello.hx”的文件中,这可以从命令行编译,例如 JavaScript:

haxe --main Main --js Main.js

转到 JVM 字节码(一个 jar 文件):

haxe --main Main --jvm Main.jar

Main.hx 可以直接由 Haxe 的内置解释器运行:

haxe --main Main --interp

大多数 Haxe 代码都是用函数来组织的,这使得 Haxe 成为一种面向对象的语言,让人想起了 Java、ActionScript 3 和 c#。然而,Haxe 在设计时就考虑到了表达能力,通过易于阅读的语法生成了一种强大的语言。

注解

  • Haxe 程序保存在扩展名为 .hx 的文件中。

  • Haxe 编译器是一个命令行工具,可以用 --main Main--interp 等参数调用。

  • Haxe 程序有类(Main,大写),类有函数(main,小写)。

  • 包含 Haxe 类的文件的名称与类本身的名称相同(在本例中是 Main.hx)。