[swift-evolution] ternary operator ?: suggestion
Paul Ossenbruggen
possen at gmail.com
Wed Dec 16 18:36:29 CST 2015
Hi Chris,
So, just trying to understand if you think this is a good direction to continue with or you think it is inherently flawed.
Can you give me an example of a function argument list or array separator that we would have a problem? I will see if I can address it.
Thanks for the feedback!
- Paul
> On Dec 16, 2015, at 3:14 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Dec 16, 2015, at 2:56 PM, Paul Ossenbruggen via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> I believe it also addresses the issues that Chris mentioned.
>>
>> to select from a boolean, a or b:
>> let a = sel ->> true, false
>>
>> to select from an enum values as in a switch:
>>
>> let a = sel ->> .Red: 1, .Green: 2, .Blue: 3
>> let b = sel ->> .Red: 1, .Green: 2, .Blue: 3, default: 4
>> let c = sel ->> case .Red: 1, case .Green: 2, case .Blue: 3, default: 4
>> let d = sel ->> .Red: 1, (sel ->> .Sun: .Yellow, .Moon: .White, .Stars: .Twinkle), .Green: 2, .Blue: 3, default: 4
>> let e = sel ->> cases: .Red: 1, case .Green: 2, case .Blue: 3, default: 4
>>
>> Disadvantages:
>> • May be a slight improvement in readability. Operators have to be looked up if you are not familiar with them.
>> • New concept that will have to be learned and not present in most C like languages so needs to be learned.
>
> This specific proposal has another problem. Since you’re using “,” you’ve introduced grammar problems. For example, you wouldn’t be able to use this operator in a function argument list or array literal, because the , would be parsed as part of the argument list separator.
>
> -Chris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151216/4f621f8b/attachment.html>
More information about the swift-evolution
mailing list