All Projects → nsomar → Collection Each

nsomar / Collection Each

Adding ruby style each iterator to Cocoa/Cocoa touch Swift Array and Range classes, And Int.times{} to Int class

Programming Languages

swift
15916 projects

Collection-Each

Adding ruby style each iterator to Cocoa/Cocoa touch Swift Array, Dictionary and Range classes, and Int.times

###Why?

Array/Dictionary and Ranges in ruby have an each method that accepts a block as a parameter and calls this block passing the value of the item at that index.

This method is missing in swift, By extending Array, Dictionary and Range classes we can implement this method.

By extending Int we can add times and timeWithIndex

###Usage

Array.each

//Iterate and pass the item
["Apples", "Oranges", "Mangos"].each{ println("Item \($0)") }

Array.eachWithIndex

//Iterate and pass the item and its index
["Apples", "Oranges", "Mangos"].eachWithIndex{ println("Item \($0) at Index \($1)") }

Dictionary.each

//Iterate and pass the item
["key1":1, "Key2":2, "Key3":3].each{ println("Key \($0) at Value \($1)") }

Int.times

3.times{ /* do something */ }

Int.times

3.timesWithIndex{ println("Index \($0)") }

Range.each

//Iterate and pass the index
(1...10).each{ println("Index \($0)") }

###How to add? Just add Collection+Each.swift to your project and the extensions will be enabled in all your .swift files

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].