“map”如何解释Perl中的第一个参数?
发布时间:2020-12-15 23:34:09 所属栏目:大数据 来源:网络整理
导读:我对Perl的“map”功能有一些疑问. 特别: 怎么样 %hash = map {$_ = 1} @array 创建哈希映射数组的元素为1?块如何返回两个元素的列表?我以为block返回它的最后一个值.是=隐式创建一个列表,而不是“,”返回其正确的参数? 为什么呢 %hash = map($_ = 1),
我对Perl的“map”功能有一些疑问.
特别: >怎么样 %hash = map {$_ => 1} @array 创建哈希映射数组的元素为1?块如何返回两个元素的列表?我以为block返回它的最后一个值.是=>隐式创建一个列表,而不是“,”返回其正确的参数? %hash = map($_ => 1),@ array 不行?我试图在这里返回两个元素的列表……在解析器的角度来看,如何在“(”“修复它之前”? 解决方法
问题1:映射块是运行列表上下文,因此允许返回零,一个或多个值. map将它们全部返回. “,”或“=>”在标量上下文中返回其右侧,但在列表上下文中返回双方.有关详细信息,请参阅
perlop.
问题2:%hash = map($_ => 1),@ array被解释为%hash =(map($_,1),@ array).换句话说,它返回(1,@ array). 当天的教训:总是在地图表达中使用赞美,这样你就不会被这些问题所困扰. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |