试试看!
右侧存在类型不匹配。 尝试并修复错误。
<?hh
class MyClass {
public function alpha(): int {
return 1;
}
public function beta(): string {
return 'hi test';
}
}
function f(MyClass $my_inst): string {
// Fix me!
return $my_inst->alpha();
}
输入注释
类型注释允许在参数,类成员变量和返回值上显式键入代码。
<?hh
class MyClass {
const int MyConst = 0;
private string $x = '';
public function increment(int $x): int {
$y = $x + 1;
return $y;
}
}```
泛型
泛型允许类和方法参数化(即,在实例化类或调用方法时关联的类型)与静态类型语言(如C#和Java)相同。
<?hh
class Box<T> {
protected T $data;
public function __construct(T $data) {
$this->data = $data;
}
public function getData(): T {
return $this->data;
}
}
Lambda表达式
Lambdas简洁地允许定义一流的功能。
<?hh
function foo(): (function(string): string) {
$x = 'bar';
return $y ==> $x . $y;
}
function test(): void {
$fn = foo();
echo $fn('baz'); // barbaz
}