首页 > 其他 > 详细

Facebook Hack 语言 简介

时间:2014-03-21 23:19:45      阅读:513      评论:0      收藏:0      [点我收藏+]

1. Hack 是什么?

Hack 是一种编程语言,用以实现HHVM与PHP的无缝互操作。Hack通过静态编辑确保了PHP的快速开发周期,与此同时又添加其它主流语言的很多通用功能。

 

Hack通过检索本地服务器的文件系统表提供即时的类型校验,校验耗时通常小于200毫秒,因此它很容易集成到你的开发流程中而不引入明显的延时。

 

下面是Hack语言一些非常重要的特性:

  • Type Annotations (类型注释): 可以是PHP代码显式类型参数,类成员变量和返回值:
    bubuko.com,布布扣
    1 <?hh
    2 class MyClass {
    3   const int MyConst = 0;
    4   private string $x = ‘‘;
    5   public function increment(int $x): int {
    6     $y = $x + 1;
    7     return $y;
    8   }
    9 }
    bubuko.com,布布扣
  • Generic(泛型):允许类和方法参数化(例如,当类实例化或方法调用时的一个类型关联),同静态类型语言如C和Java一样:
    bubuko.com,布布扣
     1 <?hh
     2 class Box<T> {
     3   protected T $data;
     4 
     5   public function __construct(T $data) {
     6     $this->data = $data;
     7   }
     8 
     9   public function getData(): T {
    10     return $this->data;
    11   }
    12 }
    bubuko.com,布布扣
  • Nullable Types(可空类型): Hack 通过使用符号“?”实现对可空类型的支持,这就引入了一种更安全的方式来处理空值,尤其对值不能取null的原始类型非常有用,例如bool 和int(用法:?bool 和 ?int),可空操作符可以用于任何类型或类
  • Collections: 通过提供一流的,内置的参数化类型,如Vecctor(一个有序的,基于索引的列表),Map(一个有序的字典),Set(一个无重值列表), 和Pari(基于索引的只有两个元素的集合)来增强使用PHP 数组的体验。
  • Lambadas 提供和PHP closures相类似的功能,但它通过隐式的封闭的函数体捕获变量并且更加简洁
    bubuko.com,布布扣
    <?hh
    function foo(): (function(string): string) {
      $x = ‘bar‘;
      return $y ==> $x . $y;
    }
    function test(): void {
      $fn = foo();
      echo $fn(‘baz‘); // barbaz
    }
    bubuko.com,布布扣

    Other significant features of Hack include ShapesType AliasingAsync support, and much more.

Hack其他一些重要特性包括Shapes, Type Aliasing, Async support等。

更多详细信息请查阅:http://hacklang.org/

Facebook Hack 语言 简介,布布扣,bubuko.com

Facebook Hack 语言 简介

原文:http://www.cnblogs.com/Jack8Chen/p/3616801.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!