入门

入门
如果您是Hack的新手,这本入门指南应该可以帮助您快速熟悉基础知识;如果您尚未阅读我们对Hack主要功能的介绍,那么您可以深入了解感兴趣的主题,以获得有关Hack所提供内容的更多知识。

概观
编写和执行Hack代码所需的先决条件非常简单:

HHVM运行时
Hack类型检查器(作为HHVM运行时构建的一部分包含在内)
可选地,可识别Hack的编辑器。我们推荐Nuclide,它拥有对Hack的一流支持。
HHVM运行时是(1)执行Hack代码(2)以运行Hack类型检查器所必需的,这是使用Hack语言的基础优势 - 确保您的代码编写良好,安全且一致。

试试我们的交互式黑客教程
您实际上可以开始学习Hack而无需安装任何软件。只需访问交互式Hack教程,即可逐步了解一些Hack功能。

你的第一个黑客程序
让我们直接进入并通过五个简单的步骤创建您的第一个Hack程序。

1.安装HHVM和Typechecker
查看有关如何安装HHVM的HHVM入门指南。

安装HHVM后,您可以使用Hack类型检查程序在运行之前静态检查代码。它不是编译器;而是一个超快速的代码分析器,它试图在运行代码之前或之后捕获动态编程错误。

类型检查器称为hh_client,默认情况下可与HHVM团队支持的所有正式软件包中的HHVM一起使用。如果您使用的是社区提供的软件包,那么hh_client也很可能也可用,但您应该咨询软件包维护者。

  1. Typechecker的设置
    选择要存储Hack代码的目录。在此目录中,运行touch .hhconfig。这会创建一个空文件,hh_client会将其作为代码的根来进行类型检查。为了正确分析您的代码,类型检查器需要进行全局分析并能够查看所有代码。这意味着它假定该根目录下的任何代码都使用全局自动加载器,并将此根下递归检查的所有代码作为一个项目。

3.编写你的第一个Hack程序
使用您选择的编辑器(例如,Nuclide,vim,Sublime Text),让我们使用以下代码创建一个名为first.php的文件:

<?hh

namespace Hack\UserDocumentation\Quickstart\Examples\First;

class Box<T> {
  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,那么所有这些都是新的,但希望您熟悉一般结构。评论提供了各种细节,但以下是关键点:

此示例创建一个名为Box的类。
Box类是通用的。
构造函数参数提升用于类构造函数。
对于函数参数和返回类型,无处不在使用类型注释。
4.运行Typechecker
如果您使用的是像Nuclide这样的编辑器,您将在编写程序时看到类型检查信息。如果从命令行运行typechecker,则命令只是:

% hh_client

你应该看到:

没错!
现在假设我们将get_int()的返回类型更改为bool而不是int。如果运行类型检查器,您将看到如下内容:

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)

学到更多
现在您已经熟悉了简单的Hack程序,继续学习Hack的最佳资源是继续阅读我们的官方Hack文档。这是最好的起点:

Hack的功能介绍
帮助您编写Hack的工具
关于Hack的常见问题
哈克强大的打字系统
使用Hack进行异步编程
Hack中的收藏
还有一本关于HHVM和Hack的精彩书籍,由HHVM团队的工程师编写。对于PHP,PHP的文档包含对PHP的介绍,并且有许多在线教程。 Hack还有一个在线互动教程。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值