3 ms·
If you cast, you don't. If you pattern match, you do. Pattern matching allows you to determine the type of an object and extract its contents, by "testing" whic
by tormeh 11y ago
If you cast, you don't. If you pattern match, you do. Pattern matching allows you to determine the type of an object and extract its contents, by "testing" which type it is. Everything is typechecked.
- morsch 11y agoThe compiler prevents you from doing case x: Warble => modifyTheWargle(x) but it doesn't stop you from sending out a Wargle to the actor that only expects Warbles.
- the_af 11y agoI know what pattern matching is; I'm not unfamiliar with Scala or other statically-typed languages with pattern matching. I was referring to what user morsch is saying in his/her comment. The problem I see is in the sender, who doesn't know if the message makes sense for the receiver. Isn't this like programming in Smalltalk or Ruby, with their "doesNotUnderstand" or "method_missing"? How does this mesh with Scala's static typing, which aims to give you compile-time errors when you screw up?