斯卡拉| '< - ',' - >'之间的区别是什么?和' =>'运营商以及他们如何隐含地工作?

时间:2016-06-22 12:22:50

标签: scala scala-collections

在学习Scala的基础时,我遇到了"< - "他们说的操作员是来自任何范围/清单或集合的发电机。

  1. 在什么基础上它会产生价值,以及隐含的方式可能是什么?
  2. 是否必须在Object.scala中使用main()?我不能在Class.scala中定义main()吗?
  3. 是否必须使Object.scala从类的方法中获取输出?

1 个答案:

答案 0 :(得分:9)

箭头

<-->=>是完全不同的东西,在Scala中使用完全不同 - 比较它们没有多大意义。

<-理解中使用了{p> for。在<-的右侧是一个生成器,它是一个带有foreach方法的类型的实例,它生成for将要循环的元素。请注意,生成器不需要是集合 - 任何具有foreach方法的方法都可以工作(例如,它可以是Option)。

->是一种创建元组的方法。在使用方便,可读的语法创建Map时,通常会使用此方法。例如:

val map = Map("one" -> 1, "two" -> 2, "three" -> 3)

请注意,"one" -> 1("one", 1)相同(Tuple2包含值"one"1)等。

=>用于函数文字和函数类型,它是函数(或函数类型)参数与body(或返回类型)之间的分隔符。

main()的

Scala没有像Java这样的static。你在Java中使用static做任何事情,你会在Scala中放入object而不是class

由于main()方法应为static,因此必须在Scala中的object中而不是在类中定义。

当然,您可以在类中创建main()方法,但不能将其用作应用程序的入口点 - 它只是一个恰好名为main的常规方法。 / p>