Hack编程简介

原文链接:http://www.hacklang.org.cn/



Hack编程语言中文官网

<?hh 
echo "Hello, HackLang.org.cn!"; 
?> 

整洁! 安全! 可重构! 兼容php! 
Hack是由FaceBook公司推出的一种编程语言,用于HHVM中。 简写为hh,可以使用hhlang.org.cn来访问本站。

新手教程 HHVM安装

1
<?hh
2
class MyClass {
3
  public function alpha(): int {
4
    return 1;
5
  }
6
7
  public function beta(): string {
8
    return 'hi test';
9
  }
10
}
11
12
function f(MyClass $my_inst): string {
13
  // Fix me!
14
  return $my_inst->alpha();
15
}

什么是Hack编程语言

Hack是一种编程语言,用于HHVM中,可与PHP结合,相互无缝操作使用。Hack 实现PHP式的快速开发周期,提供静态类型,同时增加了许多在其他现代编程语言中常见的特性。

Hack通过本地服务器监控文件系统来提供瞬时的类型检查。它通常运行在不到200毫秒,因此很容易集成到您的开发工作流程,而不会引入明显的延迟。

Hack的目标为开发人员提供了一个方式来写干净,安全和可重构代码,同时要保持与当前的PHP代码库一定程度的兼容性。实现这一目标的主要途径是向开发人员提供一种方式来检查PHP函数和类的类型信息,因而提供了类型检查工具。此外,还提供了特定的语言功能:

  • 类型标注 这个特性将允许php代码来标注参数,类成员变量和返回值的类型。(原本的PHP是对参数的类型不敏感的。比如字符串型和整形。)
    <?hh
    class MyClass {
      const int MyConst = 0;
      private string $x = '';
      public function increment(int $x): int {
        $y = $x + 1;
        return $y;
      }
    }
  • 泛型,PHP(在同样的静态类型语言如C语言、Java、C#)。泛型允许类和方法是参数化(即,当一个类被实例化或方法调用,进行类型相关联)。这里有一个例子:
    <?hh
    class Box<T> {
      protected T $data;
    
      public function __construct(T $data) {
        $this->data = $data;
      }
    
      public function getData(): T {
        return $this->data;
      }
    }
  • Nullable Types Hack增加了一种更安全的方式通过被称为“可为空”型(有时也被称为“可能”或“选项”)的观念来处理空值。可为空值允许空值已分配并检查其上的任何类型。可为空值是原始类型通常不允许null作为它们的值,如BOOL和INT,但它也可以是用户自定义的类。下面是一个例子。注意?操作符用来表示可为空。
  • Hack增加了容器类型和接口到PHP。建立在Hack对泛型的支持,Hack 增加了内置的参数化集合,如vectors和maps。集合是专门用于数据存储和检索。集合实现许多相同的接口,并扩展到创造更多的专门集合。目前,Hack 可以实现以下具体的集合类型:
  • 拉姆达表达式 offer similar functionality to PHP closures, but they capture variables from the enclosing function body implicitly and are less verbose:
    <?hh
    function foo(): (function(string): string) {
      $x = 'bar';
      return $y ==> $x . $y;
    }
    function test(): void {
      $fn = foo();
      echo $fn('baz'); // barbaz
    }

Hack语言的更多特性还包括 ShapesType AliasingAsync support, and 更多.

您可以用在您自己的代码库上,有很多开源的Hack及其转化工具 可以使用。 我们将继续在未来的道路上前行: 期待您的意见反馈,同时也欢迎您参与到HHVM和Hack的大家庭中来。


当然还有许多其它特性,可以到官方上详阅。

[项目官网]:
  http://www.hacklang.org.cn/
[下载地址]:  http://www.hhvm.org.cn/install.php
[帮助文档]:  http://www.hacklang.org.cn/cookbook.php  
[许可协议]: GNU General Public License (GPL)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值