我在这里Moxie on line 8看到use experimental 'postderef'
使用了experimental
。我只是对它的作用感到困惑。 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return String.Empty;
var transporttModeType = (TransportModeTypeEnum) value;
string imagePath = String.Empty;
...
的手册页也很模糊,
允许使用后缀解除引用表达式,包括插入字符串
任何人都可以展示在没有编译指示的情况下你必须做什么,以及pragma使得更容易或可能做什么?
答案 0 :(得分:2)
很简单。它的语法糖起伏不定。由于该特征是5.24中的核心,因此不再需要该编译指示。但是为了在5.20和5.24之间支持该功能,必须使用:@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=8888")
启用它。在提供的示例中,在Moxie中,one line中使用了use experimental 'postderef'
;没有它,你必须写$meta->mro->@*
。
这些直接来自D Foy的博客,以及Idiomatic Perl的比较,我已经写过了。
@{$meta->mro}
这些例子完全由D Foy提供,
D Foy example Idiomatic Perl
$gimme_a_ref->()->@[0]->%* %{ $gimme_a_ref->()[0] }
$array_ref->@* @{ $array_ref }
get_hashref()->@{ qw(cat dog) } @{ get_hashref() }{ qw(cat dog) }
D Foy example Idiomatic Perl
$array_ref->[0][0]->@* @{ $array_ref->[0][0] }
$sub->&* &some_sub
允许链接。postderef
可以更轻松地将复杂插值转换为标量字符串。
切片在基元上没有类似的语法。
postderef_qq
表示,为类型。现在,您->
将取消引用称为$ type ,并且还强制键入。$type->[0][1]->@*
来源