scala – 为什么在括号上使用花括号?
发布时间:2020-12-16 09:25:00 所属栏目:安全 来源:网络整理
导读:在许多Scala示例中,我看到人们在我发现完全奇怪的地方使用花括号,当使用括号可以轻松地编写相同的语句时. 例: lst foreach (x = println(s"the value returned is: $x")) // parenslst foreach {x = println(s"you get the idea,$x")} // braces 我知道你可
在许多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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |