みんなで Swift 復習会での談笑用スライド – 6th #minna_de_swift

101 Views

March 14, 17

スライド概要

みんなで Swift 復習会 (http://cswift.connpass.com) の談笑で使った資料です。これを題材に2時間ばかり、集まったみんなと談笑しました。

※ Docswell での公開に移行する直前の Slideshare での閲覧数は 795 でした。

profile-image

正統派趣味人プログラマー。プログラミングとは幼馴染です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

ΈΜͳͰ4XJGU෮शձ $PNNFOU 4FNJDPMPOT /VNCFST  ΧδϡΞϧ4XJGUϓϩάϥϛϯά ‫۽‬୩༑޺ IUUQF[OFUKQ 4XJGU

2.

5IF#BTJDT $POTUBOUTBOE7BSJBCMFT

3.

ίϝϯτ

4.

ίϝϯτ ίϝϯτͷॻࣜ ⾣ ࣮ߦϓϩάϥϜʹ‫ؚ‬Ίͳ͍ςΩετΛ‫͖Ͱࡌه‬Δ ⾣ ίʔυίϯύΠϧ࣌ʹ͸ແࢹ͞ΕΔ // 1行コメント /* 複数行 コメント */

5.

ίϝϯτ ෳ਺ߦίϝϯτͷωετ ⾣ ෳ਺ߦίϝϯτ͸ωετͰ͖Δ ⾣ ਂ͞Λೝࣝͯ͠ɺద੾ͳൣғ͕ίϝϯτʹͳΔ /* コメントの中で /* 複数行コメントアウトの記号 */ を使用しても 変なところでコメントが解消されないで済む */

6.

ηϛίϩϯ

7.

ηϛίϩϯ ߦ຤‫߸ه‬͸ෆཁ ⾣ ߦ຤‫ͯ͠ͱ߸ه‬ͷηϛίϩϯ͸ෆཁ ⾣ ͋ͬͯ΋ྑ͍ // 一般的にはセミコロンを書かない let a = 10 // セミコロンを書いても正しい表記 let b = 20;

8.

ηϛίϩϯ ηϛίϩϯ͸ผͷ༻్ ⾣ ηϛίϩϯ͸εςʔτϝϯτͷ۠੾ΓΛҙຯ͢Δ ⾣ ͻͱͭͷߦʹෳ਺ͷεςʔτϝϯτΛ‫͖Ͱࡌه‬Δ let a = 10; let b = 20

9.

ηϛίϩϯ ߦ຤‫Ͱ߸ه‬͸ͳ͍ɺͱ͍͏͜ͱ ⾣ ෳ਺ߦΛͻͱͭʹ·ͱΊΔ‫ػ‬ೳ͸ͳ͍ ⾣ ߦ຤‫߸ه‬Έ͍ͨͳɺ‫ܧ‬ଓߦද‫ʹݱ‬͸࢖͑ͳ͍ let x = arc4random_uniform (100); // (UInt32) -> UInt32 // 100 // 複数行に分けるには、継続することが判るように書く let y = arc4random_uniform( 100); // 25

10.

੔਺

11.

੔਺ ੔਺ͱ͸ ⾣ খ਺఺਺෦Λ࣋ͨͳ͍਺ ⾣ ූ߸෇͖ͱɺූ߸ͳ͠ͷ̎छྨʢ྆ऀͱ΋Λ‫ؚ‬Ήʣ // Sigined Integer, Unsigned Integer 42 // Sigined Integer, Unsigned Integer 0 // Signed Integer -13

12.

੔਺ ੔਺Λද‫͢ݱ‬Δ‫ܕ‬ ⾣ CJUɺCJUɺCJUɺCJU ⾣ ͦΕͧΕɺූ߸෇͖ͱූ߸ͳ͕͠ଘࡏ ‫ܕ‬ αΠζ NJO NBY *OU CJU   *OU CJU   *OU CJU   *OU CJU   6*OU CJU   6*OU CJU   6*OU CJU   6*OU CJU  

13.

੔਺ ࠷େͷ஋Λද‫͖Ͱݱ‬Δ੔਺‫ܕ‬ ⾣ *OU.BY‫ܕ‬ɺ6*OU.BY‫ܕ‬ ⾣ ‫ܕ‬ΤΠϦΞεͰఆٛ͞Ε͍ͯΔ typealias IntMax = Int64 typealias UIntMax = UInt64

14.

੔਺ *OU‫ܕ‬ ⾣ ΄ͱΜͲͷ৔߹ɺ͜ͷ‫ܕ‬Λ࢖͏ ⾣ ࣮ߦ‫ڥ؀‬ͷ803%αΠζͱಉ͡ w CJU‫ڥ؀‬ʜ*OUͱಉ͡αΠζʢҟͳΔ‫ܕ‬ʣ w CJU‫ڥ؀‬ʜ*OUͱಉ͡αΠζʢҟͳΔ‫ܕ‬ʣ

15.

੔਺ 6*OU‫ܕ‬ ⾣ ࣮ߦ‫ڥ؀‬ͷ803%αΠζͱಉ͡ w CJU‫ڥ؀‬ʜ6*OUͱಉ͡αΠζʢҟͳΔ‫ܕ‬ʣ w CJU‫ڥ؀‬ʜ6*OUͱಉ͡αΠζʢҟͳΔ‫ܕ‬ʣ

16.

੔਺ ੔਺‫ܕ‬ͷ࢖͍෼͚ ⾣ αΠζΛ໌֬ʹࢦఆ͍ͨ͠ͱ͖Ҏ֎͸*OU΍6*OUΛ࢖༻ w ίʔυͷҰ؏ੑ΍ɺ૬‫ޓ‬ӡ༻ੑͷ޲্͕໨త ⾣ 6*OU͸ූ߸ͳ͠੔਺͕۩ମతʹඞཁͳͱ͖͚ͩ࢖͏ w ͦΕҎ֎͸ූ߸ͳ͠੔਺Λѻ͏৔໘Ͱ΋*OUΛਪ঑ w Ұ؏ੑΛ࣋ͨͤɺίʔυͷՄ༻ੑΛߴΊΔ w ҟͳΔ੔਺‫Ͱܕ‬ͷ‫ܕ‬ม‫׵‬Λ཈͑ΒΕΔ w *OU‫΁ܕ‬ͷ‫ܕ‬ਪ࿦ʹϚον͢Δ

17.

ුಈখ਺఺਺

18.

ුಈখ਺఺਺ ුಈখ਺఺਺ͱ͸ ⾣ খ਺఺਺෦Λ࣋ͭ਺ ⾣ ੔਺ΑΓ΋޿ൣғͷ஋Λද‫͖Ͱݱ‬Δ ⾣ *&&&Λ૝ఆ͍ͯ͠Δ༷ࢠ 42.0 3.8545 0.00005

19.

ුಈখ਺఺਺ ුಈখ਺఺਺ *&&& Ծ਺ ࢦ਺ ‫਺ج‬ ⾣ খ਺఺਺Λද‫͢ݱ‬Δ࢓૊Έ ⾣ খ਺఺ͷҐஔΛಈత؅ཧ͢Δσʔλߏ଄ ⾣ Ծ਺ɾ‫਺ج‬ɾࢦ਺ͷ̏ͭͰද‫͢ݱ‬Δ ⾣ ແ‫ݶ‬େɾඇ਺஋Λද‫͖Ͱݱ‬Δ

20.

ුಈখ਺఺਺ ුಈখ਺఺਺Λද‫͢ݱ‬Δ‫ܕ‬ ⾣ CJUɺCJU ⾣ NBD04Ͱ͸CJU΋ଘࡏ ‫ܕ‬ αΠζ ࠷େ஋ ࠷΋̌ʹ͍ۙਖ਼ͷ࠷খ஋ 'MPBU CJU  º   º  %PVCMF CJU  º   º  'MPBU CJU   º  º 

21.

ුಈখ਺఺਺ 'MPBUͱ%PVCMF ⾣ 'MPBU‫ܕ‬͸ܻͷਫ਼౓ ⾣ %PVCMF‫ܕ‬͸ܻͷਫ਼౓ ⾣ ਫ਼౓Λߟ͑ͯɺద੾ͳํΛ࢖༻͢Δ͜ͱ w ͲͪΒͰ΋ྑ͍ͳΒ%PVCMFΛਪ঑

22.

ුಈখ਺఺਺ ුಈখ਺఺਺ͷৄࡉ ⾣ ൃදࢿྉlເͱ‫࣮ݱ‬ͷ‫ؒڱ‬zΛࢀর IUUQTXXXTMJEFTIBSFOFUUPNPIJSPLVNBHBJDTXJGU

23.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦

24.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ ‫҆ܕ‬શ ⾣ 4XJGU͸l‫҆ܕ‬શzͳ‫ޠݴ‬ w ద੾ͳ‫ܕ‬Λ4XJGU͕ఏࣔͯ͘͠ΕΔ w ίϯύΠϧ࣌ʹ‫ܕ‬Λ‫ݕ‬ग़͠ɺΤϥʔΛ‫ݕ‬ग़Ͱ͖Δ ⾣ શͯͷ৔໘Ͱl‫ܕ‬zΛ໌‫͢ه‬Δඞཁ͸ͳ͍

25.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ ‫ܕ‬ਪ࿦ ⾣ ‫ܕ‬ͷ‫ࡌه‬ΛলུͰ͖Δ w ద੾ͳ‫ܕ‬Λ4XJGU͕‫͚ͯͭ͘ݟ‬ΕΔ w จ຺͔Β൑அͯ͘͠ΕΔ ⾣ 0CKFDUJWF$ΑΓl‫ܕ‬zΛॻ͘͜ͱ͕ང͔ʹগͳ͍ ⾣ ม਺એ‫Ͱݴ‬͸େ఍ɺ‫ܕ‬Λॻ͕͘ɺࣗ෼ͷͨΊʹ͢Δ΋ͷ

26.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ ม਺એ‫͚͓ʹݴ‬Δ‫ܕ‬ਪ࿦ ⾣ ॳ‫ظ‬஋Λ൐͏ม਺એ‫ܕͰݴ‬ਪ࿦͕໾ཱͭ ⾣ ॳ‫ظ‬஋͸Α͘ɺϦςϥϧͰׂΓ౰ͯΔ ⾣ ‫ܕ‬ͷ஋΍ධՁࣜͰ΋ࢦఆՄೳ let count = 20 let π = 3.14 // Int // Double let seed = arc4random_uniform(20) // UInt32

27.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ Ϧςϥϧͷ‫ܕ‬ਪ࿦ ⾣ ੔਺ϦςϥϧΛ‫*ͱ͘ॻʹͣͤه໌ܕ‬OUͱਪ࿦ ⾣ ුಈখ਺఺਺Ϧςϥϧ͸ɺৗʹ%PVCMFͱਪ࿦ w ຊ౰ʹʁ let count = 20 let π = 3.14 type(of: count) type(of: π) // Int.Type // Double.Type

28.

‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ ੔਺ͱුಈখ਺఺਺ͷࠞࡏ ⾣ ੔਺Ϧςϥϧͱුಈখ਺఺਺ϦςϥϧΛࠞͥͨ࣌ɺ จ຺͔Β%PVCMF‫͕ܕ‬ਪ࿦͞ΕΔ ⾣ ੔਺Ϧςϥϧʹ‫ࢦܕ‬ఆ͕ͳ͘ɺͦΕࣗ਎ʹ΋‫͍ͳ͕ܕ‬ // リテラルは適切な型に合わせられる let answer1 = 2 * 20 * 3.14 // Double // 非リテラルは適切に型が合っていないのが検出される let answer2 = 2 * radius * π FSSPSCJOBSZPQFSBUPS DBOOPUCFBQQMJFEUP PQFSBOETPGUZQF*OUBOE%PVCMF

29.

਺஋Ϧςϥϧ

30.

਺஋Ϧςϥϧ ਐ਺ද‫ه‬੔਺Ϧςϥϧ ⾣ ઀಄ࣙΛ͚ͭͯɺϦςϥϧΛਐ਺ද‫͖Ͱه‬Δ ⾣ ਐ਺ɺਐ਺ɺਐ਺ɺਐ਺ let a = 1010 let b = 0x 1010 let c = 0b 1010 let d = 0o 1010 // Decimal: 1,010 // Hexadecimal: 4,112 // Binary: 10 // Octal: 520

31.

਺஋Ϧςϥϧ ਐ਺ද‫ුه‬ಈখ਺఺਺Ϧςϥϧ ⾣ ௨ৗ͸ਐ਺ ⾣ ਐ਺ʹ͍ͨ͠ͱ͖͸઀಄ࣙΛ͚ͭΔ w ඞͣࢦ਺ද‫͢ʹه‬Δඞཁ͕͋Δ let v = 10.5 let w = 0x10.5p0 // Decimal: 10.5 // Hexadecimal: 16.3125

32.

਺஋Ϧςϥϧ ࢦ਺ද‫ුه‬ಈখ਺఺਺Ϧςϥϧ ⾣ ਐ਺Ͱ͸ɺ‫Ͱ਺ج‬ද‫ݱ‬ʢeʣ ⾣ ਐ਺Ͱ͸ɺ‫Ͱ਺ج‬ද‫ݱ‬ʢpʣ let x = 10.5e 10 let y = 0x10.5p 10 // 10.5×10 10 // 0x10.5× 2 10

33.

਺஋Ϧςϥϧ ਺஋ϦςϥϧΛಡΈ΍͘͢ ⾣ ಄ʹ0Λ͚ͭͯἧ͑ΒΕΔ ⾣ ؒʹ_Λ‫ࡌه‬Մೳʢઌ಄ͱখ਺఺ͷ௚‫ޙ‬Λআ͘ʣ let a = 1234 let b = 0025 let x = 77_777_770 let y = 12_345.2204_e100

34.

ΈΜͳͰ4XJGU෮शձ &OEJOH

35.

&OKPZ4XJGU 5IBOLZPV ΈΜͳͰ4XJGU෮शձ  $PNNFOUT 4FNJDPMPOT /VNCFST ‫۽‬୩༑޺ IUUQF[OFUKQ ⾣ ίϝϯτ ⾣ ηϛίϩϯ ⾣ ੔਺ ⾣ ුಈখ਺఺਺ ⾣ ‫҆ܕ‬શͱ‫ܕ‬ਪ࿦ ⾣ ਺஋Ϧςϥϧ