我发现了这句话:
var o = None: Option[String]
您可以使用将o设置为None,以后可能将其设置为Some [String]
但是这个实际的陈述如何在语法上分解? None是一个扩展Option [Nothing]的对象 - 但是该语句的其余部分是如何工作的?例如,冒号做了什么?
非常感谢!
答案 0 :(得分:5)
在scala中,您可以使用类型归属的任何表达式。像1: Int
一样完全有效。所以它确实如此:
var o = (None: Option[String])
目的是告诉编译器None
应该输入Option[String]
,这样o
就不会被None.type
输入。基本上,在这个例子中,它与:
var o: Option[String] = None