Есть ли Scala эквивалент C # "как" ключевое слово? - PullRequest
8 голосов
/ 23 июня 2011

Существует ли Scala эквивалент C # as ключевого слова?

var something = obj as MyClass;

Scala's asInstanceOf бросков java.lang.ClassCastException:

val something = obj.asInstanceOf[MyClass]

Ответы [ 2 ]

9 голосов
/ 23 июня 2011

Вы можете использовать сопоставление с образцом, как описано здесь: Как я могу привести переменную в Scala?

8 голосов
/ 23 июня 2011

Прочитав немного о C #, я понял, что вы, вероятно, имели в виду следующее:

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

Следует отметить, что использование null не рекомендуется в Scala. Вы действительно должны сделать это:

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