I see your point that a simple extension on ranges and similar types would also 
do the thing.

But I do think that this is not as easy as many users would expect.
For example, I try to avoid parentheses in for loops as much as I can, but in 
your example, 4 additional brackets are required. A simple keyword („step" or 
„by“) would solve the problem seamlessly.

Also, a new template could be introduced that shows the existence of the new 
keyword:


I think adding such a new keyword would improve the ease and the clearness of 
the Swift language more than just adding some protocol extensions.

> Am 24.03.2016 um 00:02 schrieb Haravikk <[email protected]>:
> 
> I’m behind the idea in principle, but I’m not so sure we need a new keyword 
> for this:
> 
>       for eachIndex in (1 ..< 10).by(2) { … }
> 
> The above would be adequate I thin, and just requires a new method on ranges 
> and similar types. This is being discussed, among other things, in the 
> c-style for loop discussion, as these were recently removed but without a 
> replacement for this type of use-case.
> 
>> On 23 Mar 2016, at 21:40, David Knothe via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Hi,
>> 
>> I am new to Swift mailing list so I don’t know if this topic has already 
>> been discussed.
>> 
>> I like Swift's range operators ..< and …
>> What I am missing though is an easy operator to create a range with a 
>> specified step. Currently, if you would want to iterate over some odd 
>> numbers, you had to write:
>> for i in 1.stride(through: 7, by: 2) { … }
>> What I think would be simpler and more convenient would be something like 
>> the following:
>> for i in 1 … 7 step 2 { … } . Another option would be  for i in 1 … 7; 2 { … 
>> }
>> The keyword ‚step‘ in this context clearly corresponds to the step of the 
>> range to create or to iterate over.
>> 
>> Essentially this is a syntactic sugar that makes it easy to create ranges 
>> with a step ≠ 1. What do you think?
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to