Skip to content

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

Notifications You must be signed in to change notification settings

nsomar/Collection-Each

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages