如何访问hack中的可选形状字段?

Fal*_*len 3 hacklang

我有一个形状

type foo = shape(
  ?'bar' => float,
  ...
);
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试bar通过以下方式访问字段的值,

do_something_with($rcvd['bar']);
Run Code Online (Sandbox Code Playgroud)

$ rcvd是foo类型的地方,它不起作用(很明显)

如何访问形状的可选成员?

Fal*_*len 5

好的,找到它了:https : //docs.hhvm.com/hack/reference/class/HH.Shapes/idx/

所以正确的方法是

Shapes::idx($rcvd, 'bar');
Run Code Online (Sandbox Code Playgroud)