"-6ren"> "-以下代码无效: val neighbors = ('a', List(1,2,3)) #:: ('b', List(2,3,4)) #:: ('c', List(3,4,5)) #:: Stream.-6ren">
gpt4 book ai didi

scala - 不能在 Scala 中使用表达式 "_ =>"

转载 作者:行者123 更新时间:2023-12-04 05:48:00 25 4
gpt4 key购买 nike

以下代码无效:

val neighbors = ('a', List(1,2,3)) #:: ('b', List(2,3,4)) #:: ('c', List(3,4,5)) #:: Stream.empty
neighbors.count(_ => _._1 == 'a'))

不过我能做到:

neighbors.count(_._1 == 'a')

或:

neighbors.count(elem => elem._1 == 'a')

两种有效的解决方案。

问题“_ =>”有什么问题?

非常感谢

最佳答案

What is wrong with _ =>?

没有什么是错误的。它只是对编译器有特殊的意义。它的意思是“我想忽略这个值”。这是有道理的,如果你想忽略它,你希望能够对其应用任何操作。这类似于占位符语法也有特殊含义。

你可以这样做:

neighbors.count(_._1 == 'a')

因为这被规范定义为匿名函数中的占位符语法,它扩展为

neighbors.count(x => x._1 == 'a')

根据规范,我找不到任何关于此的正式内容,但它确实在 6.23 Anonymous Functions 下提供了这个示例:

_ => 5                             // The function that ignores its argument
// and always returns 5.

我还找到了 this post在旧的 Scala 语言邮件列表上。

关于scala - 不能在 Scala 中使用表达式 "_ =>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42160720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com