Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 983 - Arrayのメソッドjoined(separator:)

ちょっと気が緩むとブログの更新が途絶えてしまいそうです。毎日プログラミングに関して勉強、というか思考しているんですが、ブログに記録を残す作業が捗りません(T_T)

先日コメントして頂いたberrymuchさんにも返事ができていませんでしたm(_ _)m

少しずつ知識をつけています。皆さん、頑張りましょう... あれ頑張らなきゃいけないのは私か(^_^;)

// joined(separator:)

func joined<Separator>(separator: Separator) -> 
  JoinedSequence<Array<Element>> where Separator : Sequence, 
  Separator.Iterator.Element == Self.Iterator.Element.Iterator.Element 

こういうジェネリックな表現のメソッドの表現法にもだいぶ慣れました。このメソッドはArray型のSeparator(ジェネリック表現)がArrayで与えられます。つまり、Array型で与えられた場合、元(Self)のArrayのElementはArrayでないといけません。SeparatorのElementの型が、SelfのElement(Array)のElementの型と一致する条件のときだけ結合します。何のことやらよく分かりません。でも、例を挙げれば分かるでしょう。

let array = [[1, 2, 3], [23, 33, 45], [123, 456, 234]]
let joined = array.joined(separator: [0, 0])

// joined = [1, 2, 3, 0, 0, 23, 33, 45, 0, 0, 123, 456, 234]

こういうスタンダードライブラリを使えるようにならないといけませんね。

mapやreduceを説明したページに加えます。

yataiblue.hatenablog.com