hack入门教程
入门
如果您是Hack的新手,该入门指南应该能够帮助您快速熟悉基础知识; 如果您还没有阅读我们对Hack的主要功能的介绍,此后,您可以深入了解有兴趣的主题,以获取更多关于Hack提供的知识。
概观
您需要编写和执行Hack代码的先决条件非常简单:
- 该HHVM运行
- The Hack typechecker (包括作为HHVM运行时构建的一部分)
- 可选地,具有Hack感知的编辑器。我们推荐Nuclide,其一流的支持Hack。
(1)执行Hack代码(2)运行Hack类型检查器(这是使用Hack语言的基础优势)来确保您的代码写得好,安全和一致,所以HHVM运行时是必需的。
尝试我们的交互式hack教程
您可以开始学习Hack,而无需安装任何软件。只需转到交互式Hack教程,逐步了解一些Hack功能。
你的第一个hack程序
让我们在五个简单的步骤中潜入并创建您的第一个Hack程序。
1.安装HHVM和Typechecker
查看有关如何安装HHVM 的HHVM入门指南。
安装HHVM后,Hack typechecker将可用于在运行代码之前静态检查代码。它不是一个编译器; 而是一个超快的代码分析器,在代码运行之前尝试捕获动态编程错误,而不是在之前或之后。
类型检查器被调用,hh_client并且在HHVM团队支持的所有官方包中都可以使用HHVM。如果您正在使用社区提供的软件包,那么hh_client很可能也是可用的,但您应该与您的软件包维护者联系。
2.为Typechecker设置
选择要存储Hack代码的目录。在这个目录下运行touch .hhconfig。这将创建一个空文件,hh_client寻找作为类型检查代码的根。为了正确分析您的代码,类型检查器需要进行全局分析,并能够查看所有代码。这意味着它为这个根目录下的任何代码假定一个全局自动装载器,并将这个根目录下的所有代码一起作为一个项目一起检查。
3.写你的第一个Hack程序
使用您选择的编辑器(例如,Nuclide,vim,Sublime Text),让我们创建一个first.php使用以下代码调用的文件:
{
public function __construct(private T $elem) {
}
public function get(): T {
return $this->elem;
}
}
function get_int(): int {
return 42;
}
function use_box(): void {
$box = new Box(get_int());
$i = $box->get();
var_dump($i);
}
use_box();
该入门指南假定了一些编程知识(例如,什么是类,什么是函数或方法等)。如果你熟悉PHP,Hack有着相似的外观和感觉。如果你不熟悉PHP,那么所有这一切都是新的,但希望你的一般结构是熟悉的。意见提供各种细节,但这里是要点:
4.运行Typechecker
如果您使用的是Nuclide等编辑器,则在编写程序时会看到类型检查信息。如果从命令行运行typechecker命令只是
%hh_client
你应该看到:
No errors!
现在想象如果我们将返回类型get_int()
改为bool
而不是int
。如果你运行typechecker,你会看到这样的:
first.php:15:10,11: Invalid return type (Typing[4110])
first.php:14:21,24: This is a bool
first.php:15:10,11: It is incompatible with an int
这表明了Hack类型系统和类型检查器的强大功能:它可以让您知道您可能不会返回您的想法。类型检查器对所有的代码进行这些检查,而不必运行它们。
5.在HHVM中运行代码
在您得到您的Hack程序以类型检查清除没有错误后,您可以在HHVM中运行该程序。
%hhvm first.php
这里是输出:
INT(42)