这个陈述背后的语法是什么?

时间:2015-02-13 21:16:47

标签: scala

我发现了这句话:

var o = None: Option[String]

您可以使用将o设置为None,以后可能将其设置为Some [String]

但是这个实际的陈述如何在语法上分解? None是一个扩展Option [Nothing]的对象 - 但是该语句的其余部分是如何工作的?例如,冒号做了什么?

非常感谢!

1 个答案:

答案 0 :(得分:5)

在scala中,您可以使用类型归属的任何表达式。像1: Int一样完全有效。所以它确实如此:

var o = (None: Option[String])

目的是告诉编译器None应该输入Option[String],这样o就不会被None.type输入。基本上,在这个例子中,它与:

相同
var o: Option[String] = None

更多信息:https://stackoverflow.com/a/2087356/247985