我发现这句话:
var o = None: Option[String]
Run Code Online (Sandbox Code Playgroud)
您可以使用将o设置为None,以后可能将其设置为Some [String]
但是这个实际的陈述如何在语法上分解?None是一个扩展Option [Nothing]的对象 - 但是该语句的其余部分是如何工作的?例如,冒号做什么?
非常感谢!
在scala中,您可以使用类型ascription跟随任何表达式.喜欢1: Int完全有效.所以它真的:
var o = (None: Option[String])
Run Code Online (Sandbox Code Playgroud)
目的是告诉编译器None应该键入Option[String],因此o不要键入None.type.基本上,在这个例子中,它与以下相同:
var o: Option[String] = None
Run Code Online (Sandbox Code Playgroud)
更多信息:https://stackoverflow.com/a/2087356/247985