Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nsomar/Collection-Each

Adding ruby style each iterator to Cocoa/Cocoa touch Swift Array and Range classes, And Int.times{} to Int class
https://github.com/nsomar/Collection-Each

Last synced: 9 days ago
JSON representation

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

Awesome Lists containing this project

README

        

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