gpt4 book ai didi

scala - 为什么在括号上使用花括号?

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

在许多 Scala 示例中,我看到人们在我觉得很奇怪的地方使用大括号,因为使用括号可以轻松编写相同的语句。

例子:

lst foreach (x => println(s"the value returned is: $x")) // parens
lst foreach {x => println(s"you get the idea, $x")} // braces

我知道您可以使用大括号代替括号,因为它允许您在多行上编写语句:
val res = for {
x <- coll1
y <- coll2
} yield (x, y)
  • 所以当它写在一行上时,是否有任何内在的理由使用一个而不是另一个?
  • 结果最终应该是一样的,还是我错过了什么?
  • 或者这仅仅是风格和/或个人品味的问题?
  • 最佳答案

    一般来说,在很多情况下,您更喜欢花括号(例如,多行表达式,用于推导),但让我们具体谈谈

    当它写在一行上时,是否有任何固有的理由使用一个而不是另一个

    在第二种情况下,它不仅仅是花括号,而不是括号,而是带有省略括号的花括号。 Scala 有时允许您省略括号,后面的语法用于访问您在部分函数中获得的细节(即模式匹配),因此

    lst foreach {x => println(s"you get the idea, $x")}

    实际上是
    lst foreach({x => println(s"you get the idea, $x")})

    正如我所说,这在模式匹配 POV 中很有用:
    val map = Map("foo" -> "bar")
    map foreach { case (k, v) => println(s"key: $k, value: $v") }
    // which is not possible with the usual parenthesis

    关于scala - 为什么在括号上使用花括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553578/

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