【问题标题】:Scala - tuple3 - syntactic sugarScala - tuple3 - 语法糖
【发布时间】:2015-11-17 12:41:12
【问题描述】:

以下语法的语法糖等价物是什么:

List[Tuple2[String, Int]]  // Base
List[String Tuple2 Int]  // Syntactic sugar

对于 Tuple3?例如:

List[Tuple3[String, Float, Int]]  // Base

【问题讨论】:

  • 看到这篇文章:stackoverflow.com/a/23490562/757071。中缀只针对两个参数
  • 谢谢!我问是因为 IntelliJ 突出显示了这部分代码并说糖语法可用。因此,在阅读了@johny 发送的帖子后,我将其更改为 List[(String, Float, Int)]

标签: scala tuples


【解决方案1】:

这毫无意义。中缀语法按定义仅适用于 arity 2。这对 Scala 来说不是什么特别的东西,对编程来说甚至也不是特别的东西,它一直都是这样,而且永远都是这样。中缀运算符被称为中缀运算符,因为它们位于两个操作数之间。一个操作员怎么能坐在三个操作数之间呢?您需要一个由两部分组成的运算符来坐在三个操作数之间的两个空格中。确实存在这样的运算符,它们被称为 三元 运算符,但设计一种语法来将它们与前缀语法互换使用并不是一件容易的事,就像 Scala 所做的那样。

但是请注意,对于您要询问的内容,有语法糖:

List[Tuple2[String, Int]]  // Base
List[(String, Int)]  // Syntactic sugar

List[Tuple3[String, Float, Int]]  // Base
List[(String, Float, Int)]  // Syntactic sugar

【讨论】:

    猜你喜欢
    • 2013-07-05
    • 1970-01-01
    • 2014-08-10
    • 2015-03-26
    • 1970-01-01
    • 2010-12-06
    • 2023-03-06
    • 1970-01-01
    • 2011-04-21
    相关资源
    最近更新 更多