This is very similar to Haskell's guard I tried to pitch before, but the
community seem to not want it on Swift.
let a | case1 = "case 1"
| case2 = "case 2"
| otherwise = "default"
Where otherwise is simply defined as otherwise = True that catches everything
(similar to switch default)
On behalf of the OP's:
var description: String {
case .Hearts:
return "♥️"
case .Spades:
return "♠️"
case .Diamonds:
return "♦️"
case .Clubs:
return "♣️"
}
can be:
var description: String {
return | .Hearts = "♥️"
| .Spades = "♠️"
| .Diamonds = "♦️"
| .Clubs = "♣️"
}
On 20 May 2016, 7:15 PM +0800, Charles Constant via swift-evolution
<[email protected]>, wrote:
> I wrote some code tonight to experiment with this kind of thing. I apologize
> if it's off-topic for the thread, but it might be useful to others who want
> to experiment.
>
>
>
> //: Playground - noun: a place where people can play
>
> import Cocoa
>
> infix operator • { precedence 180 }
> infix operator → { associativity left precedence 70 }
> infix operator … { associativity right precedence 60 }
>
> func → <T>( lhs: Bool, rhs: T ) -> T? {
> return lhs ? rhs : nil
> }
>
> func … <T>( lhs:T?, rhs:T ) -> T {
> return lhs != nil ? lhs! : rhs
> }
>
> func depends<I,O>( dep:I, _ closure: (I)->(O) ) -> O {
> return closure( dep )
> }
>
> func • <I,O>( lhs: I, rhs: (I)->(O) ) -> O {
> return depends( lhs, rhs )
> }
>
> /* Example using "depends" */
>
> let
> str:String,
> i = 7
>
> str = depends( i ){
> $0==2 → "two" …
> $0==3 → "three" …
> $0==4 → "four" …
> "other"
> }
>
> /* Example using "•" operator as "depends" */
>
> enum People { case Kurtz, Popescu, Lime, Martins }
> enum Order { case First, Second, Third, Unknown }
>
> let
> order:Order,
> person:People = .Lime
>
> order = person • {
> $0 == .Kurtz → .First …
> $0 == .Popescu → .Second …
> $0 == .Lime → .Third …
> .Unknown
> }
>
>
> I also have some trepidation about posting it here, because it might have
> bugs. I wans't sure what "precedence" and "associativity" should be, for
> example. But it does make it more convenient to test alternative characters
> for operators, etc.
>
>
>
>
>
>
>
>
>
>
>
> On Sat, Apr 9, 2016 at 12:05 AM, Vladimir.S via swift-evolution
> <[email protected] <mailto:[email protected]>> wrote:
>
> On 09.04.2016 9:31, Brent Royal-Gordon wrote:
> This design is still very much under development—it hasn't even been
> reviewed, let alone added to the language. Here's the draft
> proposal:<https://github.com/jtbandes/swift-evolution/blob/case-enumerable/proposals/0000-derived-collection-of-enum-cases.md
>
> <https://github.com/jtbandes/swift-evolution/blob/case-enumerable/proposals/0000-derived-collection-of-enum-cases.md>>
>
> I'm not saying that this will necessarily be a solution that ends up being
> accepted—I'm merely saying that yes, it's something people are thinking about
> and designing; it's just been inactive for a few weeks.
>
> Oh, I see. Thank you for letting know. Just missed "you would be able" in
> your previous message, did read it as "you are able", so was trying to find
> this in current Swift version. OK, glad to know that most likely we'll have
> improvements in enums eterations for Swift 3.0.
>
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution