[swift-evolution] ternary operator ?: suggestion

Dan Appel dan.appel00 at gmail.com
Thu Dec 3 22:48:04 CST 2015


I agree that ternary can make code unreadable, especially so with the ‘?’.
I personally like the Haskel option the most, but it introduces a new
keyword ‘then’, which isn’t great either. Python’s "y if x else z" is
therefore, in my opinion, the best alternative.

Also, I found it interesting how split the Rust community was about
removing the ternary operator.

—
Dan Appel

On Thu, Dec 3, 2015 at 7:58 PM J. Cheyo Jimenez <cheyo at masters3d.com> wrote:

> Would you consider replacing the C style ?: ternary operator to something
> that does not use the question mark and colon ?
>
> The use of "?" can be confusing when speed reading code with optionals.
>
> Consider this code as somebody learning swift as their first language.
>
> let result = !condition ? 1 : 2
>
> Some alternatives:
>
> Haskel
>
> if predicate then expr1 else expr2
>
> Python
>
> result = x if a > b else y
>
> The advantage of not using the question mark is that the language will be
> more consistency on the use of "?" to mean only optionals.
>
>
> References:
> https://devforums.apple.com/message/1020139#1020139
> https://github.com/rust-lang/rust/issues/1698#issuecomment-3705066
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151204/121b0e2f/attachment.html>


More information about the swift-evolution mailing list