我有一个形状
type foo = shape(
?'bar' => float,
...
);
现在,如果我尝试按以下方式访问字段bar
的值,
do_something_with($rcvd['bar']);
其中$ rcvd属于foo类型,它不起作用(显然)
如何访问形状的null安全成员?
答案 0 :(得分:4)
好的,发现它:https://docs.hhvm.com/hack/reference/class/HH.Shapes/idx/
所以正确的方法是,
Shapes::idx($rcvd, 'bar');
答案 1 :(得分:0)
您可以使用答案中提到的catalog_num
方法。
但是您还可以使用空合并运算符,您可能更熟悉PHP和C#等其他编程语言。
请参阅:https://docs.hhvm.com/hack/expressions-and-operators/coalesce
示例:
> <ItemsControl ItemsSource="{Binding OuterList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
<ItemsControl ItemsSource="{Binding InnerList}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Hack还支持空合并等于运算符。
示例:
Shapes::idx