No 7> switch str { 8. case "foo": print("case foo") 9. case .none: print("(nil)") 10. } error: repl.swift:8:6: error: value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'? case "foo": print("case foo") ^ ! Odd error, but at least it suggests it’s an issue with optionaity.
> On Jun 28, 2016, at 9:27 AM, Nevin Brackett-Rozinsky > <nevin.brackettrozin...@gmail.com> wrote: > > Does `case "text"?` work? > > > On Tuesday, June 28, 2016, Kevin Nattinger via swift-evolution > <swift-evolution@swift.org> wrote: > Case .none: > Case .some("string"): > > > On Jun 28, 2016, at 06:40, Lucas Jordan via swift-evolution > <swift-evolution@swift.org> wrote: > >> Forgive me if this was/is discussed already, I am new to the process here.... >> >> (code is attached as a playground too) >> >> >> >> Sometimes when I am working with a String? nil can be a reasonable value, >> and what I want to do is something like the following: >> >> import UIKit >> >> >> >> var str:String? = "Hello, playground" >> >> >> >> switch str{ >> >> case nil: >> >> print("Nil!") >> >> case "Hello, playground": //it would be super nice if this worked. >> >> print("Match") >> >> default: >> >> print("Some other non nil value?") >> >> } >> >> >> >> But it does not work, the orange text is a compile time error, "Expression >> pattern of type 'String' cannot match value of type 'String?'. I realize >> that this can be replaced with a let statement (case let s where s == >> "Hello, playground":), but that is verbose. >> >> Seems like the compiler could be OK with the orange text, since it is >> clearly not nil. >> >> Thoughts? >> >> -Lucas >> >> >> >> >> >> <NilInSwitchStatements.playground.zip> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution