[swift-evolution] ternary operator ?: suggestion

Charles Constant charles at charlesism.com
Thu Dec 17 00:09:10 CST 2015

I've never hated the ternary operator, so I wouldn't feel comfortable
arguing very strongly against it. To my eyes, in situations where it's just
a choice of true/false, I agree the suggestions in this thread are not as

My reason for suggesting the change is that it would be nice to have a one
liner for non-boolean values. Especially when the mapping isn't likely to
be reused anyplace else. I run into this a fair amount, and the inline way
I do it (via a Dict) requires a lot of verbosity (keys are likely to be
Enums and need to be explicitly declared for the Dict). Either that or I
extend an Enum, but that's also verbose when I never intend to reuse the
mapping elsewhere in my project. So this would be handy:


let str = dir ? (
    .Png: "Export Png",
    .Jpeg: "Export Jpeg",
    .Tiff: "Save (native)",

let i = boo ? (
    true: 1,
    false: 0,
    nil: -1

Uh hang on... I guess "nil" is invalid as a tuple key. But hey! Other than
that, the syntax would have been convenient :)

Anyways I've harped on this enough. I can live without it, if others aren't
keen on it.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151216/fd929184/attachment.html>

More information about the swift-evolution mailing list