I’m on the side of the ‘!’ at the moment. I see a lot of heat here going into hatred of the force unwrap operator, as if it should be avoided like the plague. I simply don’t see the need for such absolutism. It’s there for a reason.
There are definitely use cases where use of the force unwrap operator is unsafe. Specifically, a lot of direct property access shouldn’t be done with it because of the fact that even if you check, another thread may come in, switch the variable to “nil” and all of a sudden you have a crash despite your best efforts. That said, if you properly reason about your code, the ! operator is a useful and reasonable access tool to unwrap the optional you know about. I certainly don't agree that we need a language construct purely so we can write verbose things as a big scary warning. > On 3 May 2016, at 4:41 PM, Dominik Pich via swift-evolution > <swift-evolution@swift.org> wrote: > > ;) yes. I know I can write let x = y! but IMHO THAT is too brief again. > I like the fact that guard makes you look what you do… it is a little bit > like assert(x != nil) > > guard! let x = y > > it reads awesome and everybody can more easily see it is a potentially fatal > & important call > >> On May 3, 2016, at 1:38 AM, Jordan Rose <jordan_r...@apple.com >> <mailto:jordan_r...@apple.com>> wrote: >> >> We have that; it’s just ‘!’. :-) >> >> Jordan >> >>> On May 2, 2016, at 12:09, Dominik Pich via swift-evolution >>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>> >>> Hello, >>> often the guard statement is used to only unwrap optionals. multiple guards >>> will cause a lot of ‘overhead’. >>> also often if it doesn’t work. there is no easy way we can gracefully >>> recover ;) >>> >>> so how about we do the same as with try/catch where you can use try! and >>> have a guard! >>> >>> the guard! could just throw an exception … >>> >>> regards >>> Dominik >>> _______________________________________________ >>> swift-evolution mailing list >>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>> https://lists.swift.org/mailman/listinfo/swift-evolution >>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> > > _______________________________________________ > 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