Créateur d'applications mobiles - Ripple Motion

OLIVIER TABONE. Co-fondateur / Directeur. VALUE VS REFERENCE IN SWIFT. 6. TechTalk #8 - 04.01.2017. Reference Type. Value Type. Value Semantics ...
383KB taille 8 téléchargements 213 vues
Créateur d’applications mobiles

#TECHTALK

TechTalk gratuits et ouverts au public au sein de nos locaux ! N’hésitez pas à vous inscrire aux prochaines sessions sur notre site: ripplemotion-services.fr

#TECHTALK

TechTalk sous forme de courtes formations le mercredi de 17h à 18h ! Échange entre vous et nos spécialistes en développement mobile

RMS TECHTALK ANIMÉ PAR :

OLIVIER TABONE Co-fondateur / Directeur [email protected] 06 83 01 05 76

GAME OF MUTABILITY SONG OF VALUE AND REFERENCE

RMS Tech Talk #8 - 04.01.2017

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Reference Type Value Type Value Semantics

6

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Reference Type “variables share ownership of the value” - OTA

7

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Value Type “variable owns the value” - OTA

8

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Type with Value Semantics “variable are logically distinct” - Apple

9

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Type with Value Semantics “variable are logically distinct” - Apple

? F T W 10

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Type with Value Semantics “variable are logically distinct” - Apple

E U L VA ? S E P Y T

? F T W 11

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

MUTABILITY GAME Team Valeureux

Vs

Team Mutateur Attaque les valeurs des autres

defend ses valeurs

12

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = … var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 13

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v: Int = 123 var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 14

TechTalk #8 - 04.01.2017

var v: Int = 123 OLIVIER TABONE Co-fondateur / Directeur

var x = v let v0 = valueOf(v) // 123 x = 456 let v1 = valueOf(v) // 123 assert(v0 == v1) // Valeureux wins 15

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = NSMutableString() var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 16

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = NSMutableString() var x = v let v0 = valueOf(v) // empty string x.append(string:”hi there”) let v1 = valueOf(v) // “hi there” assert(v0 == v1) // false, Mutateurs wins 17

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = [1, 2, 3] var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 18

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = [1, 2, 3] var x = v let v0 = valueOf(v) // [1, 2, 3] x.append(4) let v1 = valueOf(v) // [1, 2, 3] assert(v0 == v1) // true, Valeureux wins 19

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = UIImage(name:”Icon.png”) var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 20

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = UIImage(name:”Icon.png”) var x = v let v0 = valueOf(v) // Icon.png //UIImage is an immutable reference type let v1 = valueOf(v) // Icon.png assert(v0 == v1) // True, Valeureux wins 21

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = [NSMutableString(“”)] var x = v let v0 = valueOf(v) // snapshot value of v // mutateur attacks defended value
 // can only use x let v1 = valueOf(v) // snapshot value of v assert(v0 == v1) // if true, Valeureux wins 22

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

// valeureux defines a variable of type he wants // to defend var v = [NSMutableString(“”)] var x = v let v0 = valueOf(v) // [“”,] x[0].append(string:”pouet”)

let v1 = valueOf(v) // [“pouet”,] assert(v0 == v1) // false Mutateurs wins 23

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Type with Value Semantics “always wins the mutability game” - Matt Gallagher

24

TechTalk #8 - 04.01.2017

OLIVIER TABONE Co-fondateur / Directeur

VALUE VS REFERENCE IN SWIFT Immutable reference types do have value semantics. Value Type may not have value semantics.

25

Merci de votre participation !

OLIVIER TABONE Co-fondateur / Directeur [email protected] 06 83 01 05 76

Créateur d’applications mobiles