Slide 1

Slide 1 text

.PDLBCMF6TFS%FGBVMUT XJUI %VDLUZQJOH QPUBUPUJQT

Slide 2

Slide 2 text

struct Me { let name = "Takuhiro Muta" let aka = "417.72KI" let experienceYears = 5 let company = "iRidge inc." let twitter = "417_72ki" let qiita = "417_72ki" let gitHub = "417-72KI" let products = [ "BuildConfig.swift", "MockUserDefaults", ] } TFMGEFTDSJQUJPO

Slide 3

Slide 3 text

%VDL5ZQJOH

Slide 4

Slide 4 text

%VDL5ZQJOH w 0OFPGUIFNFUIPETUPJNQMFNFOU QPMZNPSQIJTN w 6TFEJOEZOBNJDMBOHVBHFT FH3VCZ 1ZUIPO w 0CKFDUTTVJUBCJMJUZJTEFUFSNJOFECZUIF QSFTFODFPGDFSUBJONFUIPETBOE QSPQFSUJFT w /PUPCKFDU`TPXOUZQF

Slide 5

Slide 5 text

r%BWF5IPNBT l*GJUXBMLTMJLFBEVDLBOERVBDLTMJLFB EVDL JUNVTUCFBEVDLz

Slide 6

Slide 6 text

%VDL5ZQJOH class Duck: def walk(self): print("Duck walking") def quack(self): print("Quack!!") class Dog: def walk(self): print("Dog walking") def bark(self): print("Bark!!") def walk_and_quack(animal): animal.walk() animal.quack()

Slide 7

Slide 7 text

%VDL5ZQJOH class Duck: def walk(self): print("Duck walking") def quack(self): print("Quack!!") class Dog: def walk(self): print("Dog walking") def bark(self): print("Bark!!") def walk_and_quack(animal): animal.walk() animal.quack()

Slide 8

Slide 8 text

%VDL5ZQJOH class Duck: def walk(self): print("Duck walking") def quack(self): print("Quack!!") class Dog: def walk(self): print("Dog walking") def bark(self): print("Bark!!") def walk_and_quack(animal): animal.walk() animal.quack()

Slide 9

Slide 9 text

%VDL5ZQJOH class Duck: def walk(self): print("Duck walking") def quack(self): print("Quack!!") class Dog: def walk(self): print("Dog walking") def bark(self): print("Bark!!") def walk_and_quack(animal): animal.walk() animal.quack()

Slide 10

Slide 10 text

%VDL5ZQJOH walk_and_quack(Duck()) # Duck walking # Quack!! walk_and_quack(Dog()) # Dog walking # AttributeError: 'Dog' object has # no attribute 'quack'

Slide 11

Slide 11 text

*O0CK$ @interface Duck: NSObject - (void)walk; - (void)quack; @end @implementation Duck - (void)walk { NSLog(@"Duck walking"); } - (void)quack { NSLog(@"Quack!!"); } @end void walkAndQuack(id animal) { [animal walk]; [animal quack]; }

Slide 12

Slide 12 text

*O0CK$ @interface Duck: NSObject - (void)walk; - (void)quack; @end @implementation Duck - (void)walk { NSLog(@"Duck walking"); } - (void)quack { NSLog(@"Quack!!"); } @end void walkAndQuack(id animal) { [animal walk]; [animal quack]; }

Slide 13

Slide 13 text

*O0CK$ @interface Duck: NSObject - (void)walk; - (void)quack; @end @implementation Duck - (void)walk { NSLog(@"Duck walking"); } - (void)quack { NSLog(@"Quack!!"); } @end void walkAndQuack(id animal) { [animal walk]; [animal quack]; }

Slide 14

Slide 14 text

*O0CK$ walkAndQuack([Duck new]); // Duck walking // Quack!! walkAndQuack([Dog new]); // Dog walking // unrecognized selector sent to instance

Slide 15

Slide 15 text

)PXUPNPDL 6TFS%FGBVMUT

Slide 16

Slide 16 text

r%BWF5IPNBT l*GJUXBMLTMJLFBEVDLBOERVBDLTMJLFB EVDL JUNVTUCFBEVDLz

Slide 17

Slide 17 text

l*GJUTBWFTPCKFDUTMJLF6TFS%FGBVMT
 BOEMPBETPCKFDUTMJLF6TFS%FGBVMUT 
 JUNVTUCF6TFS%FGBVMUTz

Slide 18

Slide 18 text

%FpOFBMMNFUIPETJO /46TFS%FGBVMUT

Slide 19

Slide 19 text

%FpOFBMMNFUIPETJO /46TFS%FGBVMUT /PUFYUFOE/46TFS%FGBVMUT

Slide 20

Slide 20 text

*NQMFNFOU

Slide 21

Slide 21 text

%FpOFFYUFOTJPOUPVTFJU BT/46TFS%FGBVMUT

Slide 22

Slide 22 text

%FpOFFYUFOTJPOUPVTFJU BT/46TFS%FGBVMUT

Slide 23

Slide 23 text

%FpOFFYUFOTJPOUPVTFJU BT/46TFS%FGBVMUT ⁉

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

5IBOLZPV IUUQTHJUIVCDPN,*.PDL6TFS%FGBVMUT