Swiftのmapからその次へ
by
oyuk
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Swiftͷmap͔Βͦͷ࣍ 2016/08/04 oyuk(@oydku)
Slide 2
Slide 2 text
ࣗݾհ • oyuk(@oydku) • iosΞϓϦΤϯδχΞ!
Slide 3
Slide 3 text
Swiftͷmap map͕͑ΔͭΒ͍͔ͭ͋͘ΔΑͶ • Optional (Enum) • Array (CollectionType) • ObservableType (RxSwift) ଞʹ͔͋ͬͨͶɻ͋ͬͨΒڭ͑ͯ
Slide 4
Slide 4 text
mapͷఆٛΛݟΔ Optional func map(@noescape f: (Wrapped) throws -> U) rethrows -> U? Array func map(@noescape transform: (Self.Generator.Element) throws -> T) rethrows -> [T] ObservableType public func map(selector: Self.E throws -> R) -> RxSwift.Observable
Slide 5
Slide 5 text
ڞ௨͋ΔΑͶ!
Slide 6
Slide 6 text
͍͍ͩͨ͜Μͳײ͡ func map(f:T -> U) -> ͋Δ
Slide 7
Slide 7 text
͍͍ͩͨ͜Μͳײ͡ func map(f:T -> U) -> ͋Δ Optional func map(@noescape f: (Wrapped) throws -> U) rethrows -> U? • Wrapped->UͷؔΛWrappedʹద༻ͯ͠U?Λฦ͢ • ͋Δ͜͜ͰU?
Slide 8
Slide 8 text
͍͍ͩͨ͜Μͳײ͡ func map(f:T -> U) -> ͋Δ Array func map(@noescape transform: (Self.Generator.Element) throws -> T) rethrows -> [T] • Self.Generator.Element->TͷؔΛ Self.Generator.Elementʹద༻ͯ͠[T]Λฦ͢ • ͋Δ͜͜Ͱ[U]
Slide 9
Slide 9 text
͍͍ͩͨ͜Μͳײ͡ func map(f:T -> U) -> ͋Δ ObservableType public func map(selector: Self.E throws -> R) -> RxSwift.Observable • Self.E->RͷؔΛSelf.Eʹద༻ͯ͠ RxSwift.ObservableΛฦ͢ • ͋Δ͜͜ͰRxSwift.Observable
Slide 10
Slide 10 text
Μʁ
Slide 11
Slide 11 text
Ͳͷmapಉ͡ʢ͖ͬ͞ݴͬͨʣ func map(f:T -> U) -> ͋Δ • ͋Δʹؔ(T->U)Λద༻ͯ͋͠ΔΛฦ͢
Slide 12
Slide 12 text
۩ମతʹ func map(f:Int -> String) -> Optional Optional let o:Optional = Optional(1).map{String($0)}
Slide 13
Slide 13 text
۩ମతʹ func map(f:Int -> String) -> Array Array let a:Array = Array(arrayLiteral: 1,2,3).map {String($0)}
Slide 14
Slide 14 text
۩ମతʹ func map(f:Int -> String) -> Observable ObservableType let o:Observable = Observable.just(1).map{String($0)}
Slide 15
Slide 15 text
ΈΜͳಉͩ͡Ͷʢ͖ͬ͞ݴͬͨʣ let a:͋Δ = ͋Δ.map{U($0)} • ͋Δ͕ • Optional • Array • Observable ʹͳΔΘ͚Ͱ͢ͳ
Slide 16
Slide 16 text
͋ΔͬͯԿʁ
Slide 17
Slide 17 text
Functor • શମΛҠͤΔͷΛද͢ • ؔखͱ͍͏Β͍͠ • ശʹྫ͑ΒΕΔࣄ͕͋Δ Πϝʔδ let a:Functor = Functor.map{U($0)}
Slide 18
Slide 18 text
Functor let o:Optional = Optional(1).map{String($0)} map͕͍ͯ͠Δ͜ͱ 1. Optionalͱ͍͏ശͷதΛऔΓग़͠ɺ͜ΕΛ$0ͱ͢ Δɻ 2. $0ΛStringʹΩϟετ 3. $0ΛOptionalͱ͍͏ശʹೖΕͯฦ͢
Slide 19
Slide 19 text
Functor let a:Array = Array(arrayLiteral: 1,2,3).map {String($0)} map͕͍ͯ͠Δ͜ͱ 1. Arrayͱ͍͏ശͷதΛऔΓग़͠ɺ͜ΕΛ$0ͱ͢Δɻ 2. $0ʢ֤ཁૉʣΛStringʹΩϟετ 3. $0ΛArrayͱ͍͏ശʹೖΕͯฦ͢
Slide 20
Slide 20 text
Functor let o:Observable = Observable.just(1).map{String($0)} map͕͍ͯ͠Δ͜ͱ 1. Observableͱ͍͏ശͷதΛऔΓग़͠ɺ͜ΕΛ$0ͱ͢ Δɻ 2. $0ΛStringʹΩϟετ 3. $0ΛObservableͱ͍͏ശʹೖΕͯฦ͢
Slide 21
Slide 21 text
·ͱΊ • mapͷഎޙʹFunctorͱ͍͏֓೦͕͋Δ • FunctorશମΛҠͤΔΛ͋ΒΘ͢ • ࠓճͷྫͰOptional,Array,Observable • શମΛҠ͢ಈ࡞͕mapͰ͋Δ