diff --git a/ExSwift/Array.swift b/ExSwift/Array.swift index 06f2e63..a8924c9 100644 --- a/ExSwift/Array.swift +++ b/ExSwift/Array.swift @@ -327,15 +327,7 @@ extension Array { func shuffled () -> Array { var shuffled = self shuffled.unshare() - - // Fisher-Yates shuffle - for i in 0..self.count { - let j = Int.random(max: i) - if j != i { - shuffled[i] = shuffled[j] - } - shuffled[j] = self[i] - } + shuffled.shuffle() return shuffled } diff --git a/ExSwift/String.swift b/ExSwift/String.swift index 21a7c62..71f0dd9 100644 --- a/ExSwift/String.swift +++ b/ExSwift/String.swift @@ -32,7 +32,7 @@ extension String { * @return Charaters at the specified indexes (converted to String) */ subscript (indexes: Int...) -> String[] { - return at(reinterpretCast(indexes)) + return at(indexes) } /** @@ -57,6 +57,15 @@ extension String { return indexes.map { self[$0]! } } + /** + * Returns the characters at the specified indexes + * @param indexes + * @return Array of characters (as String) + */ + func at (indexes: Int[]) -> String[] { + return indexes.map { self[$0]! } + } + /** * Returns an array of strings, each of which is a substring of self formed by splitting it on separator * @param separator