加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何跳过类似于Haskell模式匹配的Perl列表赋值中的元素?

发布时间:2020-12-15 23:22:32 所属栏目:大数据 来源:网络整理
导读:在 Haskell(和各种其他函数式编程语言)中,pattern matching可用于分配列表的特定元素,同时丢弃其他元素: Prelude let [x,_,z] = "abc"Prelude x'a'Prelude [z,x]"ca" 请注意,’_’不是变量,并且未分配任何内容: Prelude _interactive:5:1: Pattern syntax
在 Haskell(和各种其他函数式编程语言)中,pattern matching可用于分配列表的特定元素,同时丢弃其他元素:

Prelude> let [x,_,z] = "abc"
Prelude> x
'a'
Prelude> [z,x]
"ca"

请注意,’_’不是变量,并且未分配任何内容:

Prelude> _

<interactive>:5:1: Pattern syntax in expression context: _

对于用Perl编写的Irssi脚本,我想做类似的事情并丢弃’@_’的第二个元素(即不将它分配给任何东西):

my ($message,$windowItem) = @_;

这失败并显示错误消息:“无法在[…] overlength_filter.pl第17行的”my“中声明常量项,靠近”)=“”

那么这个下划线通配符的Perl等价物是什么?

解决方法

只需将其分配给undef.

我的($message,undef,$windowItem)= @_;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读