资讯专栏INFORMATION COLUMN

Hack语言新特性简介

Kahn / 2171人阅读

摘要:集合在数组的基础上添加了更丰富的集合类型匿名函数开始加入了匿名函数支持,但是和大多数语言不同,匿名函数内需要访问外层的变量的话,需要事先使用声明。

Facebook发布的Hack语言是一个运行在HHVM上的语言,在PHP的基础上添加了静态类型检查和一些现代编程语言的特性。

类型标记

对于大型项目而言,类型检查可以避免很多问题。



泛型

借鉴了C#和Java

 {
  protected T $data;

  public function __construct(T $data) {
    $this->data = $data;
  }

  public function getData(): T {
    return $this->data;
  }
}
nullable类型

?运算符代表可为空值。

集合

在PHP数组的基础上添加了更丰富的集合类型:

Vector

Map

Set

Pair

匿名函数

PHP 5.3开始加入了匿名函数支持,但是和大多数语言不同,匿名函数内需要访问外层的变量的话,需要事先使用use声明。

function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

Hack改进了PHP的匿名函数:

 $x . $y;
}
function test(): void {
  $fn = foo();
  echo $fn("baz"); // barbaz
}
其他特性

静态动态分离的方法分发

覆盖父类方法必须声明

XHP,输出HTML和XML时自动过滤XSS

改进了trait

Continuas

代码必须在函数或类之内

方法名不能呢给和类名一样

不允许调用父类的静态方法

不允许静态调用对象

异步编程

相关链接

hack主页

Hack on HHVM —— Facebook是如何优化PHP的


编撰 SegmentFault

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20707.html

相关文章

  • Hack on HHVM —— Facebook是如何优化PHP的

    摘要:周四正式发布了编程语言,将静态类型以及一些现代的语言特性引入了。这是对优化之路上的新里程碑。但是语言层面的优化限制太多,对而言还是不够用。其次是优化运行的步骤。在这方面进行调整,可以提升运行的性能。值得注意的是,给的影响很大。 Facebook周四正式发布了Hack编程语言,将静态类型以及一些现代的语言特性引入了PHP。这是Facebook对PHP优化之路上的新里程碑。 showIm...

    lmxdawn 评论0 收藏0
  • 现代PHP的发展趋势

    摘要:审视现在现在,语言发展迅速,由来自全球的几十名核心开发者提供支持,而且开发方式也发生了变化。这些改进得益于新竞争者的出现,尤其是开发的和。简称是和的解释器,使用即时编译器提升应用的性能,并减少内存用量。对于程序员来说,现在是令人激动的时刻。 就目前PHP语言的发展可以说是蒸蒸日上的,这得益于命名空间、性状、闭包和内置的操作码缓存等有用的特性,所以PHP正在变成一门现代化脚本语言,并且现...

    xuxueli 评论0 收藏0
  • 宸:我也曾经是“不适合”编程的人

    摘要:惠新宸是核心开发者,,的主要开发者。我在本科毕业的时候,也尝试找了一些开发工作,面试了几个单位,都被拒了,也许在当时面试我的那些人眼里,我就是一个不适合编程的人吧。 非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/142454 惠新宸@Laruence,是国内最有影响力的PHP技术专家,PHP开发组核心成...

    lucas 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<