斯卡拉 | “<-”、“->”和“=>”运算符之间有什么区别,它们如何隐式工作?

Scala | what is the difference between '<-', '->' and '=>' operators and how do they work implicitly?

在学习 Scala 的基础知识时,我遇到了“<-”运算符,他们说它是来自任何 range/list 或集合的生成器。

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

箭头

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

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

->是创建元组的方法。在使用方便、可读的语法创建 Map 时经常使用此方法。例如:

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

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

=> 用于函数字面量和函数类型,它是函数(或函数类型)参数和主体(或 return 类型)之间的分隔符。

main()

Scala 没有像 Java 这样的 static。任何你想在 Java 中制作 static 的东西,你都会在 Scala 中放入 object 而不是 class

因为 main() 方法应该是 static,它必须在 Scala 中定义在 object 中而不是在 class.

当然,您可以在 class 中创建一个 main() 方法,但您不能将其用作应用程序的入口点 - 它只是一个恰好被命名为 main.