5 ms·
Does swift have flow typing? The expressive power of sum types with nil is only exposed with flow typing. Also I don't think swift supports arbitrary sum types
by RX14 8y ago
Does swift have flow typing? The expressive power of sum types with nil is only exposed with flow typing. Also I don't think swift supports arbitrary sum types it just has a "fake" sum type syntax that only works with null. In crystal you can have an `Int32 | String` just the same as you can have an Int32?
- Zarel 8y agoSwift doesn't have flow typing, unfortunately. It has a few constructs, like `guard let` and `if let`, which let you unwrap optionals in a somewhat nicer way than other languages and are sort of similar to one aspect of flow typing.
- Veedrac 8y agoYou mean "union type" where you say "sum type". AFAICT Swift does support sum types.
- RX14 8y agoyeah in crystal we call them union types. We don't have sum types so I'm not really certain on the difference. I should have stuck to terminology I know.
- AnimalMuppet 8y agoI've seen this come up a couple of times in this discussion, so ELI5: What is "type flowing"?
- RX14 8y agoFlow typing is where the type of a variable changes based on control flow. Consider: x : Int32 | String if x.is_a? Int32 # typeof(x) == Int32 else # typeof(x) == String end
- AnimalMuppet 8y agoThanks!