gpt4 book ai didi

scala - 占位符语法不适合我

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

我已经阅读了一些其他问题,例如 What are all the uses of an underscore in Scala?虽然我确定已经有人问过这个问题,但我无法完成所有其他 17000 个 Scala 问题。

Foreach have strange behaviourPlaceholder not useful但它似乎仍然是 hidden feature :

scala> val is = (1 to 5) toList
is: List[Int] = List(1, 2, 3, 4, 5)

scala> is foreach { i => println("Hi.") ; Console println 2 * i }
Hi.
2
Hi.
4
Hi.
6
Hi.
8
Hi.
10

scala> is foreach { println("Hi.") ; Console println 2 * _ }
Hi.
2
4
6
8
10

谁能解释一下区别?

如果你感到一阵热情并尝试:

scala> is foreach { i => println("Hi!") ; Console println 2 * i }
java.lang.IllegalArgumentException: !") ; Console println 2 * i }: event not found

然后看this answer.是的,那真的发生了。

最佳答案

占位符语法适用于一个表达式,而不适用于整个 block ,因此您的示例被解释为 { println("Hi."); i => 控制台 println 2 * i

关于scala - 占位符语法不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648064/

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