Slide 1

Slide 1 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 ͸ ͲͷΑ͏ͳਐԽΛ͍ͯ͠Δ͔ʁ 1 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOSDC JAPAN 2018 2018/08/31 (Fri) 
 Yusuke Hosonuma - DeNA SWET

Slide 2

Slide 2 text

About 2 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 3

Slide 3 text

Favorite Kubernetes Rust Yusuke Hosonuma DeNA SWET - Software Engineer in Test - Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 3 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @tobi462

Slide 4

Slide 4 text

࠷ۙɺ࡞ͬͨαʔϏε 4 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ஥ؒͱҰॹʹ

Slide 5

Slide 5 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 5 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. CfPΛշదʹݕࡧ ؔ࿈Πϕϯτ΋ʂ

Slide 6

Slide 6 text

Today 6 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 7

Slide 7 text

Swift 4.2 ͷมߋ఺ 7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 8

Slide 8 text

Swift 4.2 ͷมߋ఺ 8 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͦΕ͚ͩ͡Ό෺଍Γͳ͍ʁ

Slide 9

Slide 9 text

ൃද౰࣌ ͔ΒৼΓฦͬͯΈΔ 9 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 10

Slide 10 text

͓͜ͱΘΓ 10 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 11

Slide 11 text

͓͜ͱΘΓ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 11 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͘͘͞͞ൃද͍͖ͯ͠·͢ 1SPQPTBMશ෦͸ಡΊͯ·ͤΜ Twitter ʹεϥΠυషΓ·ͨ͠ ิ଍πΠʔτେ׻ܴʂ

Slide 12

Slide 12 text

Agenda 12 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 13

Slide 13 text

Agenda Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 13 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. History Swift 4.2 1 2 3 "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS ൃද ·Ͱͷྺ࢙ 18ݸ͕࣮૷

Slide 14

Slide 14 text

Agenda Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 14 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 1 2 3 "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS ͞Βͬͱ History ൃද ·Ͱͷྺ࢙

Slide 15

Slide 15 text

Swift History 15 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 16

Slide 16 text

WWDC 2014 16 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 17

Slide 17 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 17 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 18

Slide 18 text

·͔͞ͷ৽ݴޠ͕ൃදʂ 18 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ୭΋༧૝ͯ͠ͳ͔ͬͨʂ

Slide 19

Slide 19 text

Swift ൃද Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 19 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ߴ଎ Ϟμϯ ҆શ ΠϯλϥΫςΟϒ

Slide 20

Slide 20 text

υΩϡϝϯτ 88%$ձ৔͸େ͖ͳഥख Swift Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 20 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift ൃද ࠷ॳ͔Β iOS։ൃऀ΋େ஫໨

Slide 21

Slide 21 text

4.1·ͰΛৼΓฦΔ 21 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͞Βͬͱ

Slide 22

Slide 22 text

22 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 1.0 Swift 1.1 Swift 1.2 Swift 2.0 Swift 3.0 Swift 4.0 Swift 4.1 2014 - 09 10 2015 - 04 09 2016 - 09 2017 - 09 2018 - 03

Slide 23

Slide 23 text

Swift 1.0 23 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 24

Slide 24 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 24 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 1.0 1st ϦϦʔεʂ CFUB൛ͷόάमਖ਼ɾ࢓༷มߋ ΞΫηεम০ࢠ beta 4

Slide 25

Slide 25 text

Swift 1.1 25 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 26

Slide 26 text

'BJMBCMF*OJUJBMJ[FS ΍͸ΓϏϧυ͕࣌ؒ௕͍ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 26 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 1.1 ҆ఆੑͷ޲্ ͓ۚͰղܾʁ

Slide 27

Slide 27 text

Swift 1.2 27 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 28

Slide 28 text

*GMFUͷෳ਺αϙʔτ TUBUJDએݴɹɹBT ɹɹBT Ϗϧυͷߴ଎Խ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 28 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 1.2 େ෯ͳػೳ௥Ճ ࠩ෼Ϗϧυʂ

Slide 29

Slide 29 text

Swift 2.0 29 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 30

Slide 30 text

HVBSEMFU ྫ֎ϋϯυϦϯάʢUSZDBUDIʣ 1SPUPDPMFYUFOTJPOT Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 30 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 2.0 ΦʔϓϯιʔεԽΛ༧ࠂ Protocol Oriented Programming

Slide 31

Slide 31 text

Swift 3.0 31 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 32

Slide 32 text

"1*ΨΠυϥΠϯ $ݴޠελΠϧGPSจͷഇࢭ 4XJGU1BDLBHF.BOBHFS Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 32 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 3.0 ഁյతͳ࢓༷มߋʢͲͬ͞Γʣ ໋໊نଇͷશ໘ݟ௚͠

Slide 33

Slide 33 text

Swift 4.0 33 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 34

Slide 34 text

$PEBCMF ώΞυΩϡϝϯτ จࣈྻͷίϨΫγϣϯԽ͕෮׆ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 34 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.0 ศརͳػೳ͕ଓʑͱ ษڧձͰେਓؾʂ

Slide 35

Slide 35 text

Swift 4.1 35 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 36

Slide 36 text

$POEJUJPOBMDPOGPSNBODFT ࠶ؼతͳϓϩτίϧ੍໿ &RVBUBCMF)BTIBCMFͷ҉໧࣮૷ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 36 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.1 ܕγεςϜͳͲͷਐԽ ଴๬ͷػೳ

Slide 37

Slide 37 text

ৼΓฦͬͯΈΔͱ 37 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 38

Slide 38 text

͋ΒͨΊͯࢥ͏ 38 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 39

Slide 39 text

Swift ͬͯ 39 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 40

Slide 40 text

Swift … ഁյతͳ࢓༷มߋͷ࿈ଓ όʔδϣϯҧ͍ͷωοτهࣄ Ԇظ͠ଓ͚Δ"#*҆ఆԽ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 40 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͳΜ͔ͩπϥΠ…

Slide 41

Slide 41 text

ண࣮ʹਐԽ͍ͯ͠Δʁ 41 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Ͱ΋

Slide 42

Slide 42 text

͢΂ͯ͸ཧ૝ͷ ϓϩάϥϛϯάݴޠͷͨΊʁ 42 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ௧Έແ͠ͰਐԽͳͲग़དྷͳ͍ʂ

Slide 43

Slide 43 text

What’s Swift 4.2 ? 43 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 44

Slide 44 text

Agenda Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 44 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 ຊ୊ 1 2 3 "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS History ൃද ·Ͱͷྺ࢙

Slide 45

Slide 45 text

Swift 4.2 ͷ֓ཁ 45 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 46

Slide 46 text

9DPEF ഁյతͳ࢓༷มߋ͸Θ͔ͣ ݴޠͱͯ͠ॱ౰ͳόʔδϣϯΞοϓ Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 46 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 ͷ֓ཁ ࠓ͸ beta 6 ͱ͍͏ҹ৅

Slide 47

Slide 47 text

1 47 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 API ͷ௥Ճ / มߋ

Slide 48

Slide 48 text

48 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0197 SE-0199 SE-0202 SE-0204 SE-0205 SE-0207 SE-0210 Adding in-place removeAll(where:) to the Standard Library Adding toggle to Bool Random Unification Add last(where:) and lastIndex(where:) Methods withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values Add an allSatisfy algorithm to Sequence Add an offset(of:) method to MemoryLayout API ͷ௥Ճ / มߋ ̓ͭ

Slide 49

Slide 49 text

Random Unification 49 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0202

Slide 50

Slide 50 text

50 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUඪ४ͷϥϯμϜ஋ੜ੒"1*͕௥Ճ -JOVY؀ڥͰ΋ར༻Ͱ͖ΔΑ͏ʹ ൣғ͔Βੜ੒ ഑ྻ͔ΒϥϯμϜͰऔΓग़͠ ഑ྻΛγϟοϑϧ ֓ཁ Random Unification SE-0202

Slide 51

Slide 51 text

1. ൣғ͔Βੜ੒ 51 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 52

Slide 52 text

52 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import Foundation Int(arc4random_uniform(UInt32(10))) // 0 ʙ 9 arc4random_uniform(UInt32(2)) == 0 ? true : false // true | false ൣғʢ3BOHFʣ͔Βੜ੒ Random Unification SE-0202 Swift 4.1

Slide 53

Slide 53 text

53 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import Foundation Int(arc4random_uniform(UInt32(10))) // 0 ʙ 9 arc4random_uniform(UInt32(2)) == 0 ? true : false // true | false ൣғʢ3BOHFʣ͔Βੜ੒ Random Unification SE-0202 Swift 4.1 'PVOEBUJPO͕ඞཁ

Slide 54

Slide 54 text

54 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import Foundation Int(arc4random_uniform(UInt32(10))) // 0 ʙ 9 arc4random_uniform(UInt32(2)) == 0 ? true : false // true | false ൣғʢ3BOHFʣ͔Βੜ੒ Random Unification SE-0202 Swift 4.1 4XJGUZͰͳ͍"1*

Slide 55

Slide 55 text

55 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import Foundation Int(arc4random_uniform(UInt32(10))) // 0 ʙ 9 arc4random_uniform(UInt32(2)) == 0 ? true : false // true | false Int.random(in: 0..<10) // 0 ʙ 9 Bool.random() // true | false ൣғʢ3BOHFʣ͔Βੜ੒ Random Unification SE-0202 Swift 4.1 Swift 4.2

Slide 56

Slide 56 text

56 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import Foundation Int(arc4random_uniform(UInt32(10))) // 0 ʙ 9 arc4random_uniform(UInt32(2)) == 0 ? true : false // true | false Int.random(in: 0..<10) // 0 ʙ 9 Bool.random() // true | false ൣғʢ3BOHFʣ͔Βੜ੒ Random Unification SE-0202 Swift 4.1 'PVOEBUJPOͷJNQPSU΋ෆཁʹ Swift 4.2

Slide 57

Slide 57 text

഑ྻ͔ΒϥϯμϜʹऔಘ 57 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 58

Slide 58 text

58 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] if let x = xs.randomElement() { print(x) } else { print("Array is empty.") } ഑ྻ͔ΒϥϯμϜʹཁૉΛऔಘ Random Unification SE-0202 Swift 4.2

Slide 59

Slide 59 text

59 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] if let x = xs.randomElement() { print(x) } else { print("Array is empty.") } ϥϯμϜͰཁૉΛऔಘ ഑ྻ͔ΒϥϯμϜʹཁૉΛऔಘ Random Unification SE-0202 Swift 4.2

Slide 60

Slide 60 text

60 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] if let x = xs.randomElement() { print(x) } else { print("Array is empty.") } ഑ྻ͔ΒϥϯμϜʹཁૉΛऔಘ Random Unification SE-0202 ഑ྻ͕ۭͷ৔߹͸OJM Swift 4.2

Slide 61

Slide 61 text

഑ྻΛγϟοϑϧ 61 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 62

Slide 62 text

62 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] xs.shuffled() // [4, 5, 1, 2, 3] var ys = xs ys.shuffle() print(ys) // [3, 5, 4, 2, 1] ഑ྻΛγϟοϑϧ Random Unification SE-0202 Swift 4.2

Slide 63

Slide 63 text

63 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] xs.shuffled() // [4, 5, 1, 2, 3] var ys = xs ys.shuffle() print(ys) // [3, 5, 4, 2, 1] ഑ྻΛγϟοϑϧ Random Unification SE-0202 ৽͍͠഑ྻΛฦ͢TIV⒐FE Swift 4.2

Slide 64

Slide 64 text

64 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 4, 5] xs.shuffled() // [4, 5, 1, 2, 3] var ys = xs ys.shuffle() print(ys) // [3, 5, 4, 2, 1] ഑ྻΛγϟοϑϧ Random Unification SE-0202 มߋ͢ΔTIV⒐F Swift 4.2

Slide 65

Slide 65 text

65 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Adding toggle to Bool SE-0199

Slide 66

Slide 66 text

66 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ֓ཁ Adding toggle to Bool SE-0199 #PPM஋ͷ൓సϝιουͷ௥Ճ #PPM • UPHHMF

Slide 67

Slide 67 text

67 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. view.isHidden = !view.isHidden #PPM஋Λ൓స Adding toggle to Bool SE-0199 Swift 4.1

Slide 68

Slide 68 text

68 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. view.isHidden = !view.isHidden #PPM஋Λ൓స Adding toggle to Bool SE-0199 Swift 4.1 ൱ఆԋࢉࢠͰ൓సͯ͠୅ೖ

Slide 69

Slide 69 text

69 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. view.isHidden = !view.isHidden view.isHidden.toggle() #PPM஋Λ൓స Adding toggle to Bool SE-0199 Swift 4.1 Swift 4.2

Slide 70

Slide 70 text

70 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. view.isHidden = !view.isHidden view.isHidden.toggle() #PPM஋Λ൓స Adding toggle to Bool SE-0199 Swift 4.1 νΣʔϯͷ్தʹ0QUJPOBM͕͋Δ৔߹͸͞Βʹศར Swift 4.2

Slide 71

Slide 71 text

ͪͳΈʹ࣮૷͸ʁ 71 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 72

Slide 72 text

72 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Bool { @inlinable public mutating func toggle() { self = !self } } ࣮૷͸ʁ Adding toggle to Bool SE-0199

Slide 73

Slide 73 text

73 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Bool { @inlinable public mutating func toggle() { self = !self } } ࣮૷͸ʁ Adding toggle to Bool SE-0199 ΠϯϥΠϯԽ͞ΕΔͷͰύϑΥʔϚϯε௿Լ΋৺഑ͳ͍

Slide 74

Slide 74 text

74 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Add last(where:) and lastIndex(where:) Methods SE-0204

Slide 75

Slide 75 text

75 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ຤ඌ͔ΒཁૉΛ୳͢ϝιου͕௥Ճ 4FRVFODF • MBTU XIFSF • MBTU*OEFY XIFSF • JOEFY XIFSF ➔pSTU*OEFY XIFSF ֓ཁ Add last(where:) and lastIndex(where:) Methods SE-0204 Ұ؏ੑΛ࣋ͨͤΔͨΊมߋ

Slide 76

Slide 76 text

76 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 2, 4] (xs.reversed().firstIndex(of: 2)?.base).map { xs.index(before: $0) } // Optional(3) ྫɿ࠷ޙͷʮʯͷ*OEFYΛऔಘ Add last(where:) and lastIndex(where:) Methods SE-0204 Swift 4.1

Slide 77

Slide 77 text

77 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 2, 4] (xs.reversed().firstIndex(of: 2)?.base).map { xs.index(before: $0) } // Optional(3) ൓సͯ͠ʢSFWFSTFEʣ ࠷ॳͷ*OEFYͷCBTFΛऔಘͯ͠ JOEFY CFGPSF Ͱຊདྷͷ*OEFYʹ ྫɿ࠷ޙͷʮʯͷ*OEFYΛऔಘ Add last(where:) and lastIndex(where:) Methods SE-0204 Swift 4.1 ͱʹ͔͘໘౗…

Slide 78

Slide 78 text

78 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 2, 4] (xs.reversed().firstIndex(of: 2)?.base).map { xs.index(before: $0) } // Optional(3) xs.lastIndex(of: 2) // Optional(3) Swift 4.1 Swift 4.2 ྫɿ࠷ޙͷʮʯͷ*OEFYΛऔಘ Add last(where:) and lastIndex(where:) Methods SE-0204

Slide 79

Slide 79 text

79 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [1, 2, 3, 2, 4] (xs.reversed().firstIndex(of: 2)?.base).map { xs.index(before: $0) } // Optional(3) xs.lastIndex(of: 2) // Optional(3) Swift 4.1 ؆ܿɾ໌ྎʂ Swift 4.2 ྫɿ࠷ޙͷʮʯͷ*OEFYΛऔಘ Add last(where:) and lastIndex(where:) Methods SE-0204

Slide 80

Slide 80 text

80 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Add an allSatisfy algorithm to Sequence SE-0207

Slide 81

Slide 81 text

81 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ͢΂ͯͷཁૉ͕৚݅Λຬ͔ͨ͢൑ఆ͢Δ"1* 4FRVFODF • BMM4BUJTGZ QSFDPOEJUJPO #PPM ֓ཁ Add an allSatisfy algorithm to Sequence SE-0207

Slide 82

Slide 82 text

82 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [2, 4, 6, 8] !xs.contains { $0 % 2 != 0 } // true ྫɿ഑ྻ಺ͷ͢΂ͯͷཁૉ͕ۮ਺͔ʁ Add an allSatisfy algorithm to Sequence SE-0207 Swift 4.1

Slide 83

Slide 83 text

83 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [2, 4, 6, 8] !xs.contains { $0 % 2 != 0 } // true ྫɿ഑ྻ಺ͷ͢΂ͯͷཁૉ͕ۮ਺͔ʁ Add an allSatisfy algorithm to Sequence SE-0207 Swift 4.1 ۮ਺Ͱͳ͍ཁૉ͕

Slide 84

Slide 84 text

let xs = [2, 4, 6, 8] !xs.contains { $0 % 2 != 0 } // true 84 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ྫɿ഑ྻ಺ͷ͢΂ͯͷཁૉ͕ۮ਺͔ʁ Add an allSatisfy algorithm to Sequence SE-0207 Swift 4.1 ؚ·Ε͍ͯͳ͍͜ͱ

Slide 85

Slide 85 text

85 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [2, 4, 6, 8] !xs.contains { $0 % 2 != 0 } // true xs.allSatisfy { $0 % 2 == 0 } // true ྫɿ഑ྻ಺ͷ͢΂ͯͷཁૉ͕ۮ਺͔ʁ Add an allSatisfy algorithm to Sequence SE-0207 Swift 4.1 Swift 4.2

Slide 86

Slide 86 text

86 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs = [2, 4, 6, 8] !xs.contains { $0 % 2 != 0 } // true xs.allSatisfy { $0 % 2 == 0 } // true ྫɿ഑ྻ಺ͷ͢΂ͯͷཁૉ͕ۮ਺͔ʁ Add an allSatisfy algorithm to Sequence SE-0207 Swift 4.1 ؆ܿɾ໌ྎʂ Swift 4.2

Slide 87

Slide 87 text

87 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Adding in-place removeAll(where:) to the Standard Library SE-0197

Slide 88

Slide 88 text

88 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ৚݅Λຬͨ͢ཁૉΛ͢΂ͯআڈ͢Δ"1* 3BOHF3FQMBDFBCMF$PMMFDUJPO • SFNPWF"MM XIFSF ֓ཁ Adding in-place removeAll(where:) to the Standard Library SE-0197 ύϑΥʔϚϯε΋ྑ͍ʢin-placeʣ

Slide 89

Slide 89 text

89 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. var xs = [1, 2, 3, 4] xs = xs.filter { $0 % 2 != 0 } // [1, 3] ྫɿ഑ྻ͔Βۮ਺Λ͢΂ͯऔΓআ͘ Adding in-place removeAll(where:) to the Standard Library SE-0197 Swift 4.1

Slide 90

Slide 90 text

90 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. var xs = [1, 2, 3, 4] xs = xs.filter { $0 % 2 != 0 } // [1, 3] ྫɿ഑ྻ͔Βۮ਺Λ͢΂ͯऔΓআ͘ Adding in-place removeAll(where:) to the Standard Library SE-0197 Swift 4.1 ۮ਺Ͱͳ͍ཁૉΛ

Slide 91

Slide 91 text

91 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. var xs = [1, 2, 3, 4] xs = xs.filter { $0 % 2 != 0 } // [1, 3] ྫɿ഑ྻ͔Βۮ਺Λ͢΂ͯऔΓআ͘ Adding in-place removeAll(where:) to the Standard Library SE-0197 Swift 4.1 औΓग़ͯ͠࠶୅ೖ

Slide 92

Slide 92 text

92 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. xs.removeAll { $0 % 2 == 0 } // [1, 3] var xs = [1, 2, 3, 4] xs = xs.filter { $0 % 2 != 0 } // [1, 3] ྫɿ഑ྻ͔Βۮ਺Λ͢΂ͯऔΓআ͘ Adding in-place removeAll(where:) to the Standard Library SE-0197 Swift 4.1 Swift 4.2

Slide 93

Slide 93 text

93 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. xs.removeAll { $0 % 2 == 0 } // [1, 3] var xs = [1, 2, 3, 4] xs = xs.filter { $0 % 2 != 0 } // [1, 3] ྫɿ഑ྻ͔Βۮ਺Λ͢΂ͯऔΓআ͘ Adding in-place removeAll(where:) to the Standard Library SE-0197 Swift 4.1 ؆ܿɾ໌ྎʂ Swift 4.2

Slide 94

Slide 94 text

94 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205

Slide 95

Slide 95 text

95 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. MFUͳ஋ʹରͯ͠΋௚઀ݺͼग़ͤΔΑ͏ʹ XJUI6OTBGF1PJOUFS UP@ XJUI6OTBGF#ZUFT PG@ ֓ཁ withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205

Slide 96

Slide 96 text

96 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let x = 42 var copy = x withUnsafePointer(to: &copy) { pointer in print(pointer.pointee) // 42 } XJUI6OTBGF1PJOUFS withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205 Swift 4.1

Slide 97

Slide 97 text

97 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let x = 42 var copy = x withUnsafePointer(to: &copy) { pointer in print(pointer.pointee) // 42 } XJUI6OTBGF1PJOUFS withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205 Swift 4.1 WBSʹ୅ೖ͠௚ͯ͠

Slide 98

Slide 98 text

98 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let x = 42 var copy = x withUnsafePointer(to: &copy) { pointer in print(pointer.pointee) // 42 } XJUI6OTBGF1PJOUFS withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205 Swift 4.1 ࢀরΛ౉͢

Slide 99

Slide 99 text

99 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let x = 42 var copy = x withUnsafePointer(to: &copy) { pointer in print(pointer.pointee) // 42 } withUnsafePointer(to: x) { pointer in print(pointer.pointee) // 42 } XJUI6OTBGF1PJOUFS withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205 Swift 4.1 Swift 4.2

Slide 100

Slide 100 text

100 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let x = 42 var copy = x withUnsafePointer(to: &copy) { pointer in print(pointer.pointee) // 42 } withUnsafePointer(to: x) { pointer in print(pointer.pointee) // 42 } XJUI6OTBGF1PJOUFS withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values SE-0205 Swift 4.1 ௚઀YΛ౉ͤΔΑ͏ʹ Swift 4.2

Slide 101

Slide 101 text

101 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Add an offset(of:) method to MemoryLayout SE-0210

Slide 102

Slide 102 text

102 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࢦఆͨ͠ΩʔύεͷϝϞϦΦϑηοτΛऔಘ͢Δ"1* .FNPSZ-BZPVU • P⒎TFU PG ֓ཁ Add an offset(of:) method to MemoryLayout SE-0210 OpenGL ͳͲͰศརʢΒ͍͠ʣ

Slide 103

Slide 103 text

103 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct Point { var x: Int var y: Int } struct Circle { var center: Point var radius: Int } MemoryLayout.offset(of: \Circle.center.x) // 0 MemoryLayout.offset(of: \Circle.center.y) // 8 MemoryLayout.offset(of: \Circle.radius) // 16 ϝϞϦͷΦϑηοτΛऔಘ Add an offset(of:) method to MemoryLayout SE-0210 Swift 4.2

Slide 104

Slide 104 text

104 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct Point { var x: Int var y: Int } struct Circle { var center: Point var radius: Int } MemoryLayout.offset(of: \Circle.center.x) // 0 MemoryLayout.offset(of: \Circle.center.y) // 8 MemoryLayout.offset(of: \Circle.radius) // 16 ϝϞϦͷΦϑηοτΛऔಘ Add an offset(of:) method to MemoryLayout SE-0210 ߏ଄ମ Swift 4.2

Slide 105

Slide 105 text

105 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct Point { var x: Int var y: Int } struct Circle { var center: Point var radius: Int } MemoryLayout.offset(of: \Circle.center.x) // 0 MemoryLayout.offset(of: \Circle.center.y) // 8 MemoryLayout.offset(of: \Circle.radius) // 16 ϝϞϦͷΦϑηοτΛऔಘ Add an offset(of:) method to MemoryLayout SE-0210 ,FZ1BUIͰϓϩύςΟΛࢦఆ Swift 4.2

Slide 106

Slide 106 text

106 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct Point { var x: Int var y: Int } struct Circle { var center: Point var radius: Int } MemoryLayout.offset(of: \Circle.center.x) // 0 MemoryLayout.offset(of: \Circle.center.y) // 8 MemoryLayout.offset(of: \Circle.radius) // 16 ϝϞϦͷΦϑηοτΛऔಘ Add an offset(of:) method to MemoryLayout SE-0210 Swift 4.2 .FNPSZ-BZPVUP⒎TFUʹ౉͢

Slide 107

Slide 107 text

107 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct Point { var x: Int var y: Int } struct Circle { var center: Point var radius: Int } MemoryLayout.offset(of: \Circle.center.x) // 0 MemoryLayout.offset(of: \Circle.center.y) // 8 MemoryLayout.offset(of: \Circle.radius) // 16 ← 0 byte ϝϞϦͷΦϑηοτΛऔಘ Add an offset(of:) method to MemoryLayout SE-0210 Point x y radius Int Int Int Circle ← 8 byte ← 16 byte

Slide 108

Slide 108 text

2 108 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 ݴޠ࢓༷

Slide 109

Slide 109 text

109 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0054 SE-0143 SE-0193 SE-0194 SE-0195 SE-0196 SE-0206 SE-0212 Abolish ImplicitlyUnwrappedOptional type Conditional conformances Cross-module inlining and specialization Derived Collection of Enum Cases Introduce User-defined "Dynamic Member Lookup" Types Compiler Diagnostic Directives Hashable Enhancements Compiler Version Directive ݴޠ࢓༷ 8ͭ

Slide 110

Slide 110 text

110 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0206 Hashable Enhancements

Slide 111

Slide 111 text

111 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. )BTIBCMFϓϩτίϧͷ࣮૷ํ๏͕มߋ 4XJGU • IBTI7BMVF 4XJGU • IBTI JOUPIBTIFSJOPVU)BTIFS ֓ཁ Hashable Enhancements SE-0206

Slide 112

Slide 112 text

112 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. )BTIBCMFϓϩτίϧͷ࣮૷ํ๏͕มߋ 4XJGU • IBTI7BMVF 4XJGU • IBTI JOUPIBTIFSJOPVU)BTIFS ֓ཁ Hashable Enhancements SE-0206

Slide 113

Slide 113 text

113 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. class Person: Hashable { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } static func == (lhs: Person, rhs: Person) -> Bool { return lhs.name == rhs.name && lhs.age == rhs.age } } ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206 Swift 4.2

Slide 114

Slide 114 text

114 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. class Person: Hashable { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } static func == (lhs: Person, rhs: Person) -> Bool { return lhs.name == rhs.name && lhs.age == rhs.age } } ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206 &RVBUBCMF΁ͷ४ڌ΋ඞཁ Swift 4.2

Slide 115

Slide 115 text

115 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Person: Hashable { var hashValue: Int { return name.hashValue ^ age.hashValue &* 42 } } Swift 4.1 ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206

Slide 116

Slide 116 text

extension Person: Hashable { var hashValue: Int { return name.hashValue ^ age.hashValue &* 42 } } 116 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.1 Hashable Enhancements SE-0206 ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ ࣗલͰϋογϡ஋Λܭࢉ͢Δඞཁ͕͋ͬͨ

Slide 117

Slide 117 text

extension Person: Hashable { var hashValue: Int { return name.hashValue ^ age.hashValue &* 42 } } 117 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Person: Hashable { func hash(into hasher: inout Hasher) { hasher.combine(name) hasher.combine(age) } } ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206 Swift 4.1 Swift 4.2

Slide 118

Slide 118 text

extension Person: Hashable { var hashValue: Int { return name.hashValue ^ age.hashValue &* 42 } } 118 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Person: Hashable { func hash(into hasher: inout Hasher) { hasher.combine(name) hasher.combine(age) } } ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206 Swift 4.1 Swift 4.2 ϋογϡ஋Λܭࢉ͢ΔΦϒδΣΫτ

Slide 119

Slide 119 text

extension Person: Hashable { var hashValue: Int { return name.hashValue ^ age.hashValue &* 42 } } 119 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Person: Hashable { func hash(into hasher: inout Hasher) { hasher.combine(name) hasher.combine(age) } } ྫɿ1FSTPOΫϥεʹ)BTIBCMFΛద߹ Hashable Enhancements SE-0206 Swift 4.1 DPNCJOFΛݺΜͰ͍͚͹0, Swift 4.2

Slide 120

Slide 120 text

120 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Derived Collection of Enum Cases SE-0194

Slide 121

Slide 121 text

121 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. &OVNͷDBTF͕ྻڍͰ͖ΔΑ͏ʹ $BTF*UFSBCMFϓϩτίϧΛ࣮૷ • ࣗ෼ͰΧελϚΠζ΋Մೳ ֓ཁ Derived Collection of Enum Cases SE-0194

Slide 122

Slide 122 text

Swift 4.1 ͷ৔߹ 122 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 123

Slide 123 text

123 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal { case blue case yellow case red } extension Signal { static var all: [Signal] { return [.blue, .yellow, .red] } static var count: Int { return all.count } } Signal.all // [.blue, .yellow, .red] Signal.all.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 Swift 4.1

Slide 124

Slide 124 text

124 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal { case blue case yellow case red } extension Signal { static var all: [Signal] { return [.blue, .yellow, .red] } static var count: Int { return all.count } } Signal.all // [.blue, .yellow, .red] Signal.all.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 BMMͱDPVOUΛࣗ෼Ͱ࣮૷ Swift 4.1

Slide 125

Slide 125 text

125 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal { case blue case yellow case red } extension Signal { static var all: [Signal] { return [.blue, .yellow, .red] } static var count: Int { return all.count } } Signal.all // [.blue, .yellow, .red] Signal.all.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 मਖ਼࿙Ε͕ൃੜ͢ΔՄೳੑʜ Swift 4.1

Slide 126

Slide 126 text

Swift 4.2 ͷ৔߹ 126 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 127

Slide 127 text

127 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal: CaseIterable { case blue case yellow case red } Signal.allCases // [.blue, .yellow, .red] Signal.allCases.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 Swift 4.2

Slide 128

Slide 128 text

128 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal: CaseIterable { case blue case yellow case red } Signal.allCases // [.blue, .yellow, .red] Signal.allCases.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 $BTF*UFSBCMFΛ࣮૷ Swift 4.2

Slide 129

Slide 129 text

129 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Signal: CaseIterable { case blue case yellow case red } Signal.allCases // [.blue, .yellow, .red] Signal.allCases.count // 3 FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 BMM$BTFTͰྻڍͰ͖Δʂ Swift 4.2

Slide 130

Slide 130 text

130 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. FOVNͷྻڍʢ4XJGUʣ Derived Collection of Enum Cases SE-0194 • FOVNʹBTTPDJBUFEWBMVFT͕͋Δ৔߹͸
 BMM$BTFTΛࣗ෼Ͱ࣮૷͢Δඞཁ͋Γ enum Signal: CaseIterable { case blue case yellow case red } Signal.allCases // [.blue, .yellow, .red] Signal.allCases.count // 3 Swift 4.2

Slide 131

Slide 131 text

allCases ͷΧελϚΠζ 131 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 132

Slide 132 text

132 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. enum Week: String, CaseIterable { case sunday, monday, tuesday, wednesday, thursday, friday, saturday static var allCases: [Week] { return [.sunday, .saturday] } } Week.allCases.map { $0.rawValue } // [.sunday, .saturday] BMM$BTFTͷΧελϚΠζ Derived Collection of Enum Cases SE-0194 Swift 4.2

Slide 133

Slide 133 text

enum Week: String, CaseIterable { case sunday, monday, tuesday, wednesday, thursday, friday, saturday static var allCases: [Week] { return [.sunday, .saturday] } } Week.allCases.map { $0.rawValue } // [.sunday, .saturday] 133 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. BMM$BTFTͷΧελϚΠζ Derived Collection of Enum Cases SE-0194 BMM$BTFTΛ࣮૷ͯ͠഑ྻΛฦ͢ Swift 4.2

Slide 134

Slide 134 text

134 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Introduce User-defined ”Dynamic Member Lookup" Types SE-0195

Slide 135

Slide 135 text

135 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ίϯύΠϧஈ֊Ͱ֬ఆͯ͠ͳ͍ϓϩύςΟʹ
 υοτه๏ͰΞΫηεͰ͖Δ࢓૊Έ ֓ཁ Introduce User-defined "Dynamic Member Lookup" Types SE-0195 %ZOBNJD.FNCFS-PPLVQ • $ISJT-BUUOFS͕ఏҊɾ࣮૷ • +40/΍֎෦ݴޠͷݺͼग़͠ʢ''*ʣͳͲʹ

Slide 136

Slide 136 text

ྫɿplist ʹΞΫηε͢Δ 136 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 137

Slide 137 text

137 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @dynamicMemberLookup struct Plist { let plist = [ “version" : "1.0" ] subscript(dynamicMember key: String) -> String { return plist[key] ?? "-" } } let plist = Plist() plist.version // 1.0 plist.name // - ྫɿQMJTUʹ҆શʹΞΫηε Introduce User-defined "Dynamic Member Lookup" Types SE-0195 Swift 4.2

Slide 138

Slide 138 text

138 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @dynamicMemberLookup struct Plist { let plist = [ “version" : "1.0" ] subscript(dynamicMember key: String) -> String { return plist[key] ?? "-" } } let plist = Plist() plist.version // 1.0 plist.name // - ྫɿQMJTUʹ҆શʹΞΫηε Introduce User-defined "Dynamic Member Lookup" Types SE-0195 ଐੑΛఆٛ Swift 4.2

Slide 139

Slide 139 text

139 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @dynamicMemberLookup struct Plist { let plist = [ “version" : "1.0" ] subscript(dynamicMember key: String) -> String { return plist[key] ?? "-" } } let plist = Plist() plist.version // 1.0 plist.name // - ྫɿQMJTUʹ҆શʹΞΫηε Introduce User-defined "Dynamic Member Lookup" Types SE-0195 EZOBNJD.FNCFS Swift 4.2

Slide 140

Slide 140 text

140 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @dynamicMemberLookup struct Plist { let plist = [ “version" : "1.0" ] subscript(dynamicMember key: String) -> String { return plist[key] ?? "-" } } let plist = Plist() plist.version // 1.0 plist.name // - ྫɿQMJTUʹ҆શʹΞΫηε Introduce User-defined "Dynamic Member Lookup" Types SE-0195 ରԠ͢ΔΩʔ͕ແ͔ͬͨΒσϑΥϧτ஋ Swift 4.2

Slide 141

Slide 141 text

141 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @dynamicMemberLookup struct Plist { let plist = [ “version" : "1.0" ] subscript(dynamicMember key: String) -> String { return plist[key] ?? "-" } } let plist = Plist() plist.version // 1.0 plist.name // - ྫɿQMJTUʹ҆શʹΞΫηε Introduce User-defined "Dynamic Member Lookup" Types SE-0195 ϓϩύςΟͷΑ͏ʹΞΫηεͰ͖Δ Swift 4.2

Slide 142

Slide 142 text

ྫɿPython ࿈ܞ 142 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Proposal ΑΓൈਮ

Slide 143

Slide 143 text

Swift 4.1 143 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 144

Slide 144 text

144 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. // import pickle let pickle = Python.get(member: "import")("pickle") // file = open(filename) let file = Python.get(member: "open")(filename) // blob = file.read() let blob = file.get(member: "read")() // result = pickle.loads(blob) let result = pickle.get(member: "loads")(blob) 4XJGU Introduce User-defined "Dynamic Member Lookup" Types SE-0195

Slide 145

Slide 145 text

145 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. // import pickle let pickle = Python.get(member: "import")("pickle") // file = open(filename) let file = Python.get(member: "open")(filename) // blob = file.read() let blob = file.get(member: "read")() // result = pickle.loads(blob) let result = pickle.get(member: "loads")(blob) 4XJGU Introduce User-defined "Dynamic Member Lookup" Types SE-0195 ϝιουͳͲΛ͢΂ͯจࣈྻͰࢦఆ

Slide 146

Slide 146 text

Swift 4.2 146 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 147

Slide 147 text

147 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. // import pickle let pickle = Python.import("pickle") // file = open(filename) let file = Python.open(filename) // blob = file.read() let blob = file.read() // result = pickle.loads(blob) let result = pickle.loads(blob) 4XJGU Introduce User-defined "Dynamic Member Lookup" Types SE-0195

Slide 148

Slide 148 text

148 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. // import pickle let pickle = Python.import("pickle") // file = open(filename) let file = Python.open(filename) // blob = file.read() let blob = file.read() // result = pickle.loads(blob) let result = pickle.loads(blob) 4XJGU Introduce User-defined "Dynamic Member Lookup" Types SE-0195 ݩͷ1ZUIPOίʔυͱ΄΅ಉ͡ʹ

Slide 149

Slide 149 text

149 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Abolish ImplicitlyUnwrappedOptional type SE-0054

Slide 150

Slide 150 text

150 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *60ܕɹ➔ɹ*60ଐੑ *NQMJDJUMZ6OXSBQQFE0QUJPOBMܕ • ҉໧తΞϯϥοϓܕʢFY4USJOHʣ • 4XJGUY͔Β։࢝͞Εͨ • 0QUJPOBMܕʹ౷Ұ ֓ཁ Abolish ImplicitlyUnwrappedOptional type SE-0054 4.2 Ͱ׬શഇࢭʂ

Slide 151

Slide 151 text

151 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. *60ܕɹ➔ɹ*60ଐੑ ϝϦοτ • ίϯύΠϥ࣮૷͕γϯϓϧʹͳΔ • 4XJGUར༻ऀʹͱͬͯ͸΄΅Өڹ͕ͳ͍ ֓ཁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Β͍͠

Slide 152

Slide 152 text

[Int!] ͷܕ͸Կ͔ʁ 152 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Λௐ΂ͯΈΔ

Slide 153

Slide 153 text

153 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs: [Int!] = [1, 2, 3] type(of: xs) // Array>.Type <*OU>ͷܕ͸Կ͔ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.1

Slide 154

Slide 154 text

154 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs: [Int!] = [1, 2, 3] type(of: xs) // Array>.Type <*OU>ͷܕ͸Կ͔ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.1 *NQMJDJUMZ6OXSBQQFE0QUJPOBM*OU

Slide 155

Slide 155 text

155 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs: [Int!] = [1, 2, 3] type(of: xs) // Array>.Type type(of: xs) // Array>.Type <*OU>ͷܕ͸Կ͔ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.1 Swift 4.2

Slide 156

Slide 156 text

156 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs: [Int!] = [1, 2, 3] type(of: xs) // Array>.Type type(of: xs) // Array>.Type <*OU>ͷܕ͸Կ͔ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.1 0QUJPOBM*OU Swift 4.2

Slide 157

Slide 157 text

157 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let xs: [Int!] = [1, 2, 3] type(of: xs) // Array>.Type type(of: xs) // Array>.Type <*OU>ͷܕ͸Կ͔ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.1 Swift 4.2 • ɹ*NQMJDJUMZ6OXSBQQFE0QUJPOBM*OU • ɹ0QUJPOBM*OU

Slide 158

Slide 158 text

IUO ଐੑͱ͸ʁ 158 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 159

Slide 159 text

159 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @implicitlyUnwrappedOptional let xs: Int? = 42 *60ଐੑͱ͸ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 Swift 4.2

Slide 160

Slide 160 text

160 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @implicitlyUnwrappedOptional let xs: Int? = 42 *60ଐੑͱ͸ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 ͜͏͍͏ଐੑ͕෇༩͞Εͯ Swift 4.2

Slide 161

Slide 161 text

161 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @implicitlyUnwrappedOptional let xs: Int? = 42 *60ଐੑͱ͸ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 ܕ͸0QUJPOBM*OU Swift 4.2

Slide 162

Slide 162 text

162 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. @implicitlyUnwrappedOptional let xs: Int? = 42 *60ଐੑͱ͸ʁ Abolish ImplicitlyUnwrappedOptional type SE-0054 ίϯύΠϥ಺෦ଐੑͳͷͰఆٛෆՄ Swift 4.2

Slide 163

Slide 163 text

163 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Conditional conformances SE-0143

Slide 164

Slide 164 text

164 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ৚݅෇͖ͷϓϩτίϧద߹ 4XJGUɹಋೖ 4XJGUɹվળ • ࣮ߦ࣌ͷϓϩτίϧద߹൑ఆ • ഑ྻ΍σΟΫγϣφϦ͕)BTIBCMFʹద߹ ֓ཁ Conditional conformances SE-0143

Slide 165

Slide 165 text

165 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $POEJUJPOBMDPOGPSNBODFTʁ

Slide 166

Slide 166 text

166 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Array: Equatable where Element: Equatable { } $POEJUJPOBM$POGPSNBODFT Conditional conformances SE-0143 Swift 4.2

Slide 167

Slide 167 text

167 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Array: Equatable where Element: Equatable { } $POEJUJPOBM$POGPSNBODFT Conditional conformances SE-0143 ཁૉͷܕ͕&RVBUBCMFͳ৔߹ʹ Swift 4.2

Slide 168

Slide 168 text

168 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Array: Equatable where Element: Equatable { } $POEJUJPOBM$POGPSNBODFT Conditional conformances SE-0143 "SSBZΛ&RVBUBCMFʹ४ڌ Swift 4.2

Slide 169

Slide 169 text

169 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. extension Array: Equatable where Element: Equatable { } $POEJUJPOBM$POGPSNBODFT Conditional conformances SE-0143 4XJGU͔ΒͰ͖ΔΑ͏ʹͳͬͨ Swift 4.2

Slide 170

Slide 170 text

170 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࣮ߦ࣌ͷϓϩτίϧద߹൑ఆ 4.2 Ͱͷվળ ᶃ

Slide 171

Slide 171 text

171 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. protocol Drinkable { func drink() } struct Curry: Drinkable { func drink() { print("ΧϨʔ͸ҿΈ෺ʂ") } } extension Array: Drinkable where Element: Drinkable { func drink() { for x in self { x.drink() } } } ྫɿཁૉ͕ʮҿΊΔʯͳΒ͹શମͱͯ͠΋ʮҿΊΔʯ Conditional conformances SE-0143 Swift 4.2

Slide 172

Slide 172 text

172 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. protocol Drinkable { func drink() } struct Curry: Drinkable { func drink() { print("ΧϨʔ͸ҿΈ෺ʂ") } } extension Array: Drinkable where Element: Drinkable { func drink() { for x in self { x.drink() } } } ྫɿཁૉ͕ʮҿΊΔʯͳΒ͹શମͱͯ͠΋ʮҿΊΔʯ Conditional conformances SE-0143 ʮҿΊΔʯΛදݱ͢Δϓϩτίϧ

Slide 173

Slide 173 text

173 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. protocol Drinkable { func drink() } struct Curry: Drinkable { func drink() { print("ΧϨʔ͸ҿΈ෺ʂ") } } extension Array: Drinkable where Element: Drinkable { func drink() { for x in self { x.drink() } } } ྫɿཁૉ͕ʮҿΊΔʯͳΒ͹શମͱͯ͠΋ʮҿΊΔʯ Conditional conformances SE-0143 ΧϨʔ͸΋ͪΖΜʮҿΈ෺ʯ

Slide 174

Slide 174 text

174 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. protocol Drinkable { func drink() } struct Curry: Drinkable { func drink() { print("ΧϨʔ͸ҿΈ෺ʂ") } } extension Array: Drinkable where Element: Drinkable { func drink() { for x in self { x.drink() } } } ྫɿཁૉ͕ʮҿΊΔʯͳΒ͹શମͱͯ͠΋ʮҿΊΔʯ Conditional conformances SE-0143 ΧϨʔࡼ͕ʮҿΈ෺ʯͰ͋Ε͹ɺԿࡼͰ΋ʮҿΈ෺ʯ

Slide 175

Slide 175 text

175 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let items: Any = [Curry(), Curry(), Curry()] if let drinks = items as? Drinkable { drinks.drink() } ࣮ߦ࣌ʹ1SPUPDPM΁ͷ४ڌΛ൑ఆ Conditional conformances SE-0143 Swift 4.1

Slide 176

Slide 176 text

176 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let items: Any = [Curry(), Curry(), Curry()] if let drinks = items as? Drinkable { drinks.drink() } ࣮ߦ࣌ʹ1SPUPDPM΁ͷ४ڌΛ൑ఆ Conditional conformances SE-0143 Swift 4.1 <$VSSZ>Λ"OZͰએݴ

Slide 177

Slide 177 text

177 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let items: Any = [Curry(), Curry(), Curry()] if let drinks = items as? Drinkable { drinks.drink() } ࣮ߦ࣌ʹ1SPUPDPM΁ͷ४ڌΛ൑ఆ Conditional conformances SE-0143 Swift 4.1 %SJOLBCMFʹ४ڌ͍ͯ͠Δ͔ʁ

Slide 178

Slide 178 text

178 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let items: Any = [Curry(), Curry(), Curry()] if let drinks = items as? Drinkable { drinks.drink() } ࣮ߦ࣌ʹ1SPUPDPM΁ͷ४ڌΛ൑ఆ Conditional conformances SE-0143 Swift 4.1 warning: Swift runtime does not yet support dynamically querying conditional conformance Ͱ͸ਖ਼͘͠൑ఆͰ͖ͳ͔ͬͨ

Slide 179

Slide 179 text

let items: Any = [Curry(), Curry(), Curry()] if let drinks = items as? Drinkable { drinks.drink() } // ΧϨʔ͸ҿΈ෺ʂ // ΧϨʔ͸ҿΈ෺ʂ // ΧϨʔ͸ҿΈ෺ʂ 179 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࣮ߦ࣌ʹ1SPUPDPM΁ͷ४ڌΛ൑ఆ Conditional conformances SE-0143 Ͱ͸ҿΊΔΑ͏ʹʂ Swift 4.2

Slide 180

Slide 180 text

180 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ഑ྻͳͲ͕)BTIBCMFʹద߹ 4.2 Ͱͷվળ ᶄ

Slide 181

Slide 181 text

181 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct User: Hashable { var name: String var pets: [String] } ྫɿߏ଄ମ΁ͷ)BTIBCMFద߹ Conditional conformances SE-0143 Swift 4.1

Slide 182

Slide 182 text

182 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct User: Hashable { var name: String var pets: [String] } • <4USJOH>͕)BTIBCMFʹద߹͍ͯ͠ͳ͍ ྫɿߏ଄ମ΁ͷ)BTIBCMFద߹ Conditional conformances SE-0143 ❌ͩͱίϯύΠϧΤϥʔ Swift 4.1

Slide 183

Slide 183 text

183 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. struct User: Hashable { var name: String var pets: [String] } • ཁૉ͕)BTIBCMFͰ͋Ε͹ɺ഑ྻ΋)BTIBCMFʹద߹ • 0QUJPOBMɺ%JDUJPOBSZɺ3BOHFͳͲʹ͍ͭͯ΋ಉ༷ ྫɿߏ଄ମ΁ͷ)BTIBCMFద߹ Conditional conformances SE-0143 ⭕ͳΒ͜ͷ··Ͱ0,ʂ Swift 4.2

Slide 184

Slide 184 text

184 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Compiler Diagnostic Directives SE-0196

Slide 185

Slide 185 text

185 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ίϯύΠϧ࣌ʹܯࠂɾΤϥʔ͕ग़ͤΔσΟϨΫςΟϒ XBSOJOH FSSPS ֓ཁ Compiler Diagnostic Directives SE-0196 Objective-C ʹ͸͋ͬͨ

Slide 186

Slide 186 text

186 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #warning("औಘͨ͠APIΩʔΛઃఆ͍ͯͩ͘͠͞ɻ") let apiKey = "" #error("ίʔϧόοΫURLΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ") let callbackURL = "" ίϯύΠϥɾσΟϨΫςΟϒ Compiler Diagnostic Directives SE-0196 Swift 4.2

Slide 187

Slide 187 text

187 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #warning("औಘͨ͠APIΩʔΛઃఆ͍ͯͩ͘͠͞ɻ") let apiKey = "" #error("ίʔϧόοΫURLΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ") let callbackURL = "" ίϯύΠϥɾσΟϨΫςΟϒ Compiler Diagnostic Directives SE-0196 XBSOJOHͰܯࠂ Swift 4.2

Slide 188

Slide 188 text

188 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #warning("औಘͨ͠APIΩʔΛઃఆ͍ͯͩ͘͠͞ɻ") let apiKey = "" #error("ίʔϧόοΫURLΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ") let callbackURL = "" ίϯύΠϥɾσΟϨΫςΟϒ Compiler Diagnostic Directives SE-0196 FSSPSͰίϯύΠϧΤϥʔ Swift 4.2

Slide 189

Slide 189 text

189 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ίϯύΠϥɾσΟϨΫςΟϒ Compiler Diagnostic Directives SE-0196 #warning("औಘͨ͠APIΩʔΛઃఆ͍ͯͩ͘͠͞ɻ") let apiKey = "" #error("ίʔϧόοΫURLΛઃఆ͢Δඞཁ͕͋Γ·͢ɻ") let callbackURL = "" ར༻ྫɿαϯϓϧίʔυʹهड़ Swift 4.2

Slide 190

Slide 190 text

190 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 9DPEFͰͷදࣔ Compiler Diagnostic Directives SE-0196 ௨ৗͷXBSOJOHFSSPSͱಉ༷

Slide 191

Slide 191 text

191 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Compiler Version Directive SE-0212

Slide 192

Slide 192 text

192 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DPNQJMFSͷಋೖ 4XJGUίϯύΠϥͷόʔδϣϯͰ੾Γ෼͚ Compiler Version Directive SE-0212 ֓ཁ Swift όʔδϣϯ Ͱ͔͠ग़དྷͳ͔ͬͨ

Slide 193

Slide 193 text

193 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. TXJGU Ͱ SwiftίϯύΠϥ 4.1+ Λ൑ఆ

Slide 194

Slide 194 text

194 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #if swift(>=4.1) || (swift(>=3.3) && !swift(>=4.0)) // ίϯύΠϥ 4.1 Ҏ্Ͱ༗ޮͳίʔυ #endif Compiler Version Directive SE-0212 4XJGUίϯύΠϥΛ൑ఆ Swift --swift-version 3 --swift-version 4 4.0 3.2 4.0 4.1 3.3 4.1 4.2 3.4 4.1.5 Swift 4.2

Slide 195

Slide 195 text

195 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #if swift(>=4.1) || (swift(>=3.3) && !swift(>=4.0)) // ίϯύΠϥ 4.1 Ҏ্Ͱ༗ޮͳίʔυ #endif Compiler Version Directive SE-0212 Swift --swift-version 3 --swift-version 4 4.0 3.2 4.0 4.1 3.3 4.1 4.2 3.4 4.1.5 4XJGUίϯύΠϥΛ൑ఆ ޓ׵Ϟʔυ΋ؚΊͨ4XJGUόʔδϣϯͰ൑ఆ Swift 4.2

Slide 196

Slide 196 text

196 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DPNQJMFS

Slide 197

Slide 197 text

197 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #if compiler(>=4.2) // ίϯύΠϥ 4.2 Ҏ্Ͱ༗ޮͳίʔυ #endif Compiler Version Directive SE-0212 4XJGUίϯύΠϥΛ൑ఆ Swift 4.2

Slide 198

Slide 198 text

198 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. #if compiler(>=4.2) // ίϯύΠϥ 4.2 Ҏ্Ͱ༗ޮͳίʔυ #endif Compiler Version Directive SE-0212 ίϯύΠϥͷόʔδϣϯͰ൑ఆͰ͖Δ 4XJGUίϯύΠϥΛ൑ఆ Swift 4.2

Slide 199

Slide 199 text

199 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Cross-module inlining and specialization SE-0193

Slide 200

Slide 200 text

200 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϞδϡʔϧؒͷΠϯϥΠϯԽΛࢦఆͰ͖ΔΑ͏ʹ ͭͷଐੑ͕௥Ճ • !JOMJOBCMF • !VTBCMF'SPN*OMJOF Cross-module inlining and specialization SE-0193 ֓ཁ ࠓ·Ͱ͸Ϟδϡʔϧ಺ͷΈ

Slide 201

Slide 201 text

201 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ΠϯϥΠϯԽͱ͸ʁ

Slide 202

Slide 202 text

202 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. func add(_ x: Int, _ y: Int) -> Int { return x + y } add(1, 2) ΠϯϥΠϯԽ Cross-module inlining and specialization SE-0193 Swift 4.2

Slide 203

Slide 203 text

func add(_ x: Int, _ y: Int) -> Int { return x + y } add(1, 2) 203 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ΠϯϥΠϯԽ Cross-module inlining and specialization SE-0193 ؔ਺ݺͼग़͠ͷΦʔόʔϔουֻ͕͔Δ Swift 4.2

Slide 204

Slide 204 text

func add(_ x: Int, _ y: Int) -> Int { return x + y } add(1, 2) 204 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ΠϯϥΠϯԽ 1 + 2 Cross-module inlining and specialization SE-0193 Swift 4.2 Swift 4.2

Slide 205

Slide 205 text

func add(_ x: Int, _ y: Int) -> Int { return x + y } add(1, 2) 205 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ΠϯϥΠϯԽ 1 + 2 Cross-module inlining and specialization SE-0193 Swift 4.2 Swift 4.2 ؔ਺ͷຊମίʔυΛల։

Slide 206

Slide 206 text

206 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ϞδϡʔϧؒͷΠϯϥΠϯԽ

Slide 207

Slide 207 text

207 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. public class Counter { @usableFromInline var count: Int = 0 public init() {} @inlinable public func add() -> Int { count += 1 return count } } !JOMJOBCMF Cross-module inlining and specialization SE-0193 Swift 4.2

Slide 208

Slide 208 text

208 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. public class Counter { @usableFromInline var count: Int = 0 public init() {} @inlinable public func add() -> Int { count += 1 return count } } !JOMJOBCMF Cross-module inlining and specialization SE-0193 ؔ਺ͷΠϯϥΠϯԽΛએݴ Swift 4.2

Slide 209

Slide 209 text

209 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. public class Counter { @usableFromInline var count: Int = 0 public init() {} @inlinable public func add() -> Int { count += 1 return count } } !JOMJOBCMF Cross-module inlining and specialization SE-0193 !JOMJOBCMFͳؔ਺͔Βར༻͞ΕΔ৔߹ʹඞཁ Swift 4.2

Slide 210

Slide 210 text

210 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. public class Counter { @usableFromInline var count: Int = 0 public init() {} @inlinable public func add() -> Int { count += 1 return count } } !JOMJOBCMF • Ϟδϡʔϧ֎͔Βݺͼग़ͨ࣌͠ʹΠϯϥΠϯԽΛڐՄ • ࣮ࡍʹΠϯϥΠϯԽ͞ΕΔ͔͸ίϯύΠϥґଘ Cross-module inlining and specialization SE-0193 Swift 4.2

Slide 211

Slide 211 text

3 211 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift 4.2 Swift Package Manager

Slide 212

Slide 212 text

212 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swift Package Manager 3ͭ SE-0201 SE-0208 SE-0209 Package Manager Local Dependencies Package Manager System Library Targets Package Manager Swift Language Version API Update

Slide 213

Slide 213 text

213 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0201 Package Manager Local Dependencies

Slide 214

Slide 214 text

214 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. -PDBMύε΋ґଘؔ܎ͰࢦఆͰ͖ΔΑ͏ʹ QBDLBHF QBUI ֓ཁ Package Manager Local Dependencies SE-0201 ࠓ·Ͱ͸ϦϞʔτ΁ͷUP͕ඞཁͩͬͨ

Slide 215

Slide 215 text

215 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import PackageDescription let package = Package( name: "Package", dependencies: [ .package(path: "/path/to/MyPackage", from: "1.0.0"), ], ... ) -PDBMύεʹ͋ΔґଘΛࢦఆ Package Manager Local Dependencies SE-0201 Swift 4.2

Slide 216

Slide 216 text

216 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import PackageDescription let package = Package( name: "Package", dependencies: [ .package(path: "/path/to/MyPackage", from: "1.0.0"), ], ... ) -PDBMύεʹ͋ΔґଘΛࢦఆ Package Manager Local Dependencies SE-0201 -PDBMύεΛࢦఆՄೳʹ Swift 4.2

Slide 217

Slide 217 text

217 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0209 Package Manager Swift Language Version API Update

Slide 218

Slide 218 text

218 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. TXJGU-BOHVBHF7FSTJPOTͷࢦఆ͕&OVNʹ 4XJGU • *OUͰࢦఆ 4XJGU • 4XJGU7FSTJPOͰࢦఆ ֓ཁ Package Manager Swift Language Version API Update SE-0209

Slide 219

Slide 219 text

219 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. TXJGU-BOHVBHF7FSTJPOTͷࢦఆ͕&OVNʹ 4XJGU • *OUͰࢦఆ 4XJGU • 4XJGU7FSTJPOͰࢦఆ ֓ཁ Package Manager Swift Language Version API Update SE-0209 Enum

Slide 220

Slide 220 text

220 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let package = Package( ... swiftLanguageVersions: [4] ) TXJGU-BOHVBHF7FSTJPOT Swift 4.1 Package Manager Swift Language Version API Update SE-0209

Slide 221

Slide 221 text

221 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let package = Package( ... swiftLanguageVersions: [4] ) Swift 4.1 TXJGU-BOHVBHF7FSTJPOT Package Manager Swift Language Version API Update SE-0209 *OUͷ഑ྻͰࢦఆ͍ͯͨ͠

Slide 222

Slide 222 text

222 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let package = Package( ... swiftLanguageVersions: [.v4_2, .version("5.0")] ) let package = Package( ... swiftLanguageVersions: [4] ) Swift 4.1 TXJGU-BOHVBHF7FSTJPOT Package Manager Swift Language Version API Update SE-0209 Swift 4.2

Slide 223

Slide 223 text

223 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. let package = Package( ... swiftLanguageVersions: [.v4_2, .version("5.0")] ) let package = Package( ... swiftLanguageVersions: [4] ) Swift 4.1 TXJGU-BOHVBHF7FSTJPOT Package Manager Swift Language Version API Update SE-0209 FOVNͷ഑ྻͰࢦఆ͢ΔΑ͏ʹ Swift 4.2

Slide 224

Slide 224 text

224 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. SE-0208 Package Manager System Library Targets

Slide 225

Slide 225 text

225 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷґଘࢦఆ͕มߋ 4XJGU • 1BDLBHFͱͯ͠෼ׂ͕ඞཁ 4XJGU • 5BSHFUͱͯ͠ࢦఆ ֓ཁ Package Manager System Library Targets SE-0208

Slide 226

Slide 226 text

226 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷґଘࢦఆ͕มߋ 4XJGU • 1BDLBHFͱͯ͠෼ׂ͕ඞཁ 4XJGU • 5BSHFUͱͯ͠ࢦఆ ֓ཁ Package Manager System Library Targets SE-0208

Slide 227

Slide 227 text

227 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷࢦఆ libxml2 Clibxml Main Swift 4.1 Package Manager System Library Targets SE-0208

Slide 228

Slide 228 text

228 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷࢦఆ libxml2 Clibxml Main Swift 4.1 Package Manager System Library Targets SE-0208 ؒʹύοέʔδ͕ඞཁ

Slide 229

Slide 229 text

229 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷࢦఆ libxml2 Clibxml Main libxml2 Main Swift 4.1 Swift 4.2 Package Manager System Library Targets SE-0208

Slide 230

Slide 230 text

230 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. γεςϜϥΠϒϥϦͷࢦఆ libxml2 Clibxml Main libxml2 Main Swift 4.1 Swift 4.2 Package Manager System Library Targets SE-0208 5BSHFUͰ௚઀ࢦఆ

Slide 231

Slide 231 text

231 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import PackageDescription let package = Package( ... targets: [ .systemLibrary( name: "CLibxml", pkgConfig: "libxml2" ) ] ) γεςϜϥΠϒϥϦͷࢦఆ Package Manager System Library Targets SE-0208 Swift 4.2

Slide 232

Slide 232 text

232 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import PackageDescription let package = Package( ... targets: [ .systemLibrary( name: "CLibxml", pkgConfig: "libxml2" ) ] ) γεςϜϥΠϒϥϦͷࢦఆ Package Manager System Library Targets SE-0208 5BSHFUͰ௚઀ࢦఆ Swift 4.2

Slide 233

Slide 233 text

Conclusion 233 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 234

Slide 234 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 234 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS ࠓ೔ɺ࿩ͨ͜͠ͱ 1 2 3

Slide 235

Slide 235 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 235 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS 18 proposals 1 2 3 ࠓ೔ɺ࿩ͨ͜͠ͱ

Slide 236

Slide 236 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 236 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS 1 2 3 ࠓ೔ɺ࿩ͨ͜͠ͱ

Slide 237

Slide 237 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 237 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS 1 2 3 ࠓ೔ɺ࿩ͨ͜͠ͱ

Slide 238

Slide 238 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 238 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS 1 2 3 ࠓ೔ɺ࿩ͨ͜͠ͱ

Slide 239

Slide 239 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 239 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 4XJGUͷൃදʙ·Ͱͷྺ࢙ 4XJGUͷมߋ఺ "1*ͷ௥Ճมߋ ݴޠ࢓༷ 4XJGU1BDLBHF.BOBHFS ਐԽͯͨ͠ʁ 1 2 3 ࠓ೔ɺ࿩ͨ͜͠ͱ

Slide 240

Slide 240 text

Swift is evolving 240 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.