Scala是否相当于C#“as”关键字?

时间:2011-06-23 09:14:57

标签: c# scala casting classcastexception

Scala是否等同于C#as关键字?

var something = obj as MyClass;

Scala asInstanceOf抛出java.lang.ClassCastException

val something = obj.asInstanceOf[MyClass]

2 个答案:

答案 0 :(得分:9)

您可以使用模式匹配,如下所述:How do I cast a variable in Scala?

答案 1 :(得分:8)

在读完C#之后,我意识到你可能意味着这个:

val foo = if (bar.isInstaceOf[Foo]) bar.asInstanceOf[Foo] else null.asInstanceOf[Foo]

应该注意,在Scala中不鼓励使用null。你应该真的这样做:

val foo = if (bar.isInstaceOf[Foo]) Some(bar.asInstanceOf[Foo]) else None