はじめてのRuby 第12章 / Ruby Practice 12

Fd09da0d9751bb7875ef4ff7e6201860?s=47 muttan
November 29, 2016

はじめてのRuby 第12章 / Ruby Practice 12

Fd09da0d9751bb7875ef4ff7e6201860?s=128

muttan

November 29, 2016
Tweet

Transcript

  1. ͨͷ͍͠3VCZୈষ

  2. ͨͷ͍͠
 ᕙ ?@?P ᕗ

  3. 3VCZ

  4. ୈճ

  5. ୈষ/VNFSJDΫϥε

  6. /VNFSJDͷΫϥεߏ੒

  7. w *OUFHFSΫϥεʢ  ͳͲʣ΍'MPBUΫϥε ʢ ͳͲʣ͸/VNFSJDΫϥεͷαϒΫϥε ͱͯ͠ఆٛ͞Ε͍ͯΔ /VNFSJDͷΫϥεߏ੒ /VNFSJD *OUFHFS

    ʢ੔਺ʣ 'JYOVN
 ʢ௨ৗͷ੔਺ʣ #JHOVN ʢେ͖ͳ੔਺ʣ 'MPBU
 ʢුಈখ਺఺ʣ 3BUJPOBM
 ʢ༗ཧ਺ʣ $PNQMFY ʢෳૉ਺ʣ
  8. w ௨ৗϓϩάϥϜͰѻ͏੔਺͸'JYOVNʹऩ·Δఔ౓ Ͱ͋Δ͕ ສ͕Ұ௒͑ͯ͠·ͬͯ΋ࣗಈతʹ#JHOVN Ϋϥεʹม׵͞ΕΔ /VNFSJDͷΫϥεߏ੒ JSC NBJO O 

     JSC NBJO ODMBTT 'JYOVN JSC NBJO N     ʜʢུʣ JSC NBJO NDMBTT #JHOVN
  9. w 3VCZͰ͸༗ཧ਺΍ෳૉ਺Λѻ͏͜ͱ΋Ͱ͖Δ w ༗ཧ਺͸3BUJPOBMΫϥε ෳૉ਺͸$PNQMFYΫϥ εͰද͢ w ྫʣҎԼͷࣜΛ3BUJPOBMΫϥεΛ༻͍ͯܭࢉͯ͠ ΈΔ /VNFSJDͷΫϥεߏ੒

    2 5 + 1 3
  10. w ҎԼͷΑ͏ʹར༻͢Δ
 
 
 
 w UP@GϝιουΛ࢖͏ͱ'MPBUΦϒδΣΫτʢখ਺ʣ΁ ͷม׵͕ߦΘΕΔ w ෼ࢠ͸OVNFSBUPS

    ෼฼͸EFOPNJOBUPSϝιουͰ औಘͰ͖Δ /VNFSJDͷΫϥεߏ੒
  11. w ෳૉ਺Λѻ͏$PNQMFYΦϒδΣΫτ͸ҎԼͷΑ͏ ʹѻ͏ w $PNQMFY ࣮෦ ڏ෦ ͱͯ͠ੜ੒͢Δ w ࣮෦͸SFBM

    ڏ෦͸JNBHJOBSZϝιουͰऔಘՄೳ /VNFSJDͷΫϥεߏ੒
  12. ਺஋ͷϦςϥϧ

  13. w ਺஋ΦϒδΣΫτΛද͢Ϧςϥϧͷྫ ਺஋ͷϦςϥϧ Ϧςϥϧ ҙຯ  ੔਺ͷਐ਺දه  ੔਺ͷਐ਺දه Y

    ੔਺ͷਐ਺දه C ੔਺ͷਐ਺දه  ුಈখ਺఺਺ F ුಈখ਺఺਺ͷࢦ਺දه 1਺஋ΦϒδΣΫτͷϦςϥϧࢀর
  14. w ਺஋ΦϒδΣΫτΛද͢Ϧςϥϧͷྫ ਺஋ͷϦςϥϧ Ϧςϥϧ ҙຯ  ੔਺ͷਐ਺දه  ੔਺ͷਐ਺දه Y

    ੔਺ͷਐ਺දه C ੔਺ͷਐ਺දه  ුಈখ਺఺਺ F ුಈখ਺఺਺ͷࢦ਺දه 1਺஋ΦϒδΣΫτͷϦςϥϧࢀর
  15. w খ਺఺ΛؚΉ਺஋͸ුಈখ਺఺ͱͳΔ w ුಈখ਺఺Λࢦ਺දه͢Δࡍ͸ ʮԾ਺෦Fࢦ਺෦ʯ ͱදه͢ΔʢF͸&Ͱ΋͍͍ʣ w ੔਺΍খ਺ͷޙʹSΛ෇͚Δͱ3BUJPOBMΦϒδΣΫ τ͕ੜ੒͞ΕΔ ਺஋ͷϦςϥϧ

  16. w ਺஋ΦϒδΣΫτΛද͢Ϧςϥϧͷྫ ਺஋ͷϦςϥϧ

  17. ࢉज़ԋࢉ

  18. w ΦϒδΣΫτಉ࢜ͷԋࢉ͸ ҎԼͷԋࢉࢠΛ࢖ͬͯ ߦ͏͜ͱ͕Ͱ͖Δ ࢉज़ԋࢉ ԋࢉࢠ ԋࢉ Ճࢉ  ݮࢉ

    ৐ࢉ  আࢉ  ৒༨ ΂͖৐
  19. w *OUFHFS 'MPBU͸'MPBUʹͳΔ͕ *OUFHFSಉ࢜ͷ ԋࢉ͸݁Ռ͕*OUFHFSʹͳΓ 'MPBUಉ࢜ͷԋࢉ͸݁ Ռ͕'MPBUʹͳΔ ࢉज़ԋࢉ

  20. w ༗ཧ਺ͷԋࢉʢ ʣ͸ ϦςϥϧදهΛ༻ ͍Δͱ࣍ͷΑ͏ʹॻ͘͜ͱ͕Ͱ͖Δ ࢉज़ԋࢉ

  21. w ༗ཧ਺ͷԋࢉʢ ʣ͸ ϦςϥϧදهΛ༻ ͍Δͱ࣍ͷΑ͏ʹॻ͘͜ͱ͕Ͱ͖Δ
 
 
 w ෛ਺ͷ΂͖৐͸3BUJPOBMΦϒδΣΫτΛฦ͢ ࢉज़ԋࢉ

  22. w ෳૉ਺ͷԋࢉ͸ ϦςϥϧΛ࢖ͬͯҎԼͷΑ͏ʹه ड़͢Δ͜ͱ͕Ͱ͖Δ ࢉज़ԋࢉ

  23. w ʢআࢉʣ΍ʢ৒༨ʣҎ֎ʹ΋ আࢉΛߦ͏ํ๏͕͋Δ w YEJW Z 
 YΛZͰׂͬͨ੔਺ͷ঎Λฦ͢ w YRVP

    Z 
 YΛZͰׂͬͨ੔਺ͷ঎Λฦ͢੔਺ಉ࢜ͷԋࢉͷ৔߹ 3BUJPOBM ΦϒδΣΫτ͕ฦΔ w YNPEVMP Z 
 YΛZͰׂͬͨ༨ΓΛฦ͢ w YEJWNPE Z 
 YΛZͰׂͬͨͱ͖ͷ঎ͱ༨ΓΛ഑ྻʹͯ͠ฦ͢ আࢉ
  24. w YEJW Z 
 YΛZͰׂͬͨ੔਺ͷ঎Λฦ͢EJW͸ϝιουΛݺ ͼग़͠ qPPSΛऔΔ͜ͱͰܭࢉ͞ΕΔ w YRVP Z

    
 YΛZͰׂͬͨ੔਺ͷ঎Λฦ͢੔਺ಉ࢜ͷԋࢉͷ৔ ߹ 3BUJPOBMΦϒδΣΫτ͕ฦΔ আࢉ
  25. w YNPEVMP Z 
 YΛZͰׂͬͨ༨ΓΛฦ͢ w YEJWNPE Z 
 YΛZͰׂͬͨͱ͖ͷ঎ͱ༨ΓΛ഑ྻʹͯ͠ฦ͢


    ঎͸YEJW Z ༨Γ͸YNPEVMP Z ͱಉ͡ আࢉ
  26. w YSFNBJOEFS Z 
 YΛZͰׂͬͨ༨ΓΛฦ͢NPEVMPͱ͸ҟͳΓ ༨ Γͷූ߸͸Yͷූ߸ʹ४ͣΔ আࢉ

  27. w θϩআࢉΛߦͬͨ৔߹ w *OUFHFSΫϥεͷ৔߹͸ྫ֎͕ൃੜ w 'MPBUΫϥεͰ͸ /B/΍*OpOJUZ͕ฦΔ আࢉ

  28. .BUIϞδϡʔϧ

  29. w ࡾ֯ؔ਺΍ର਺ؔ਺ͳͲ਺஋ԋࢉͷͨΊͷϝιο υ ఆ਺͸.BUIϞδϡʔϧͰఏڙ͞Ε͍ͯΔ
 
 
 w ͦͷଞϝιου͸ϦϑΝϨϯεࢀরͷ͜ͱ
 IUUQTEPDTSVCZMBOHPSHKBMBUFTUDMBTT .BUIIUNM

    .BUIϞδϡʔϧ
  30. ਺஋ܕͷม׵

  31. w *OUFHFSΦϒδΣΫτˠ'MPBUΦϒδΣΫτ͸UP@G ϝιουΛར༻͢Δ w 'MPBUΦϒδΣΫτˠ*OUFHFSΦϒδΣΫτ͸UP@J ϝιουΛར༻͢Δ w จࣈྻUP@G΍จࣈྻUP@Jͱ͢Δ͜ͱͰ 4USJOHΦ ϒδΣΫτΛ*OUFHFSΦϒδΣΫτ΍'MPBUΦϒδΣ

    Ϋτʹม׵͢Δ͜ͱ͕Ͱ͖Δ ਺஋ܕͷม׵
  32. w UP@G UP@Jϝιουͷ࢖༻ྫ ਺஋ܕͷม׵

  33. w 'MPBUUP@G͸੾Γࣺͯͨ஋Λฦ͢ w ࢛ࣺޒೖͨ͠஋͕ཉ͍͠৔߹͸ SPVOEϝιου Λ࢖͏ w Ҿ਺ͰؙΊΔܻ਺Λࢦఆ͢Δ͜ͱ͕Ͱ͖Δ ਺஋ܕͷม׵

  34. w Ҿ਺Λࢦఆ͠ͳ͔ͬͨ৔߹͸ࣗ਎ʹ࠷΋͍ۙ੔ ਺͕ฦΔ w ෛ਺Λ༩͑Δͱ ੔਺෦෼ΛؙΊΔ ਺஋ܕͷม׵

  35. w DFJMϝιου͸ ࣗ෼ͱ౳͍͔͠ΑΓେ͖ͳ੔਺ ͷ͏ͪ࠷খͷ΋ͷΛฦ͢ ਺஋ܕͷม׵

  36. w qPPSϝιου͸ ࣗ਎ͱ౳͍͔͠ΑΓখ͞ͳ੔ ਺ͷ͏ͪ࠷େͷ΋ͷΛฦ͢ ਺஋ܕͷม׵

  37. w UP@SϝιουΛݺͿ͜ͱͰ3BUJPOBMΦϒδΣΫ τ UP@DϝιουΛݺͿ͜ͱͰ$PNQMFYΦϒδΣ Ϋτʹม׵͢Δ͜ͱ͕Ͱ͖Δ ਺஋ܕͷม׵

  38. Ϗοτԋࢉ

  39. w *OUFHFSΫϥεͰ͸ϏοτԋࢉΛར༻Ͱ͖Δ Ϗοτԋࢉ ԋࢉࢠ ԋࢉ d Ϗοτ൓స  Ϗοτੵ c

    Ϗοτ࿨ ? ഉଞత࿦ཧ࿨  ӈγϑτ  ࠨγϑτ
  40. w Ϗοτԋࢉͷྫ Ϗοτԋࢉ

  41. ཚ਺

  42. w 3BOEPNSBOEϝιουͰٙࣅཚ਺ΛಘΒΕΔ w Ҿ਺Λ༩͑ͣʹݺͼग़ͨ͠৔߹ Ҏ্ະຬ ͷ࣮਺͕ฦΔ w Ҿ਺ʹਖ਼ͷ੔਺OΛ༩͑ͨ৔߹ Ҏ্Oະຬͷ੔ ਺Λฦ͢

    ཚ਺
  43. w 3BOEPNΦϒδΣΫτΛੜ੒͢ΔࡍʹTFFE஋Λ ઃఆ͢Δ͜ͱ͕Ͱ͖Δ
 
 
 w Ҿ਺Λলུͨ͠৔߹ 3BOEPNOFX@TFFEͷ஋Λ ࢖༻͢Δʢ3BOEPNOFX@TFFE͸ద౰ͳTFFEΛ ฦ͢ϝιουʣͭ·Γʜ

    ཚ਺
  44. w 3BOEPNΦϒδΣΫτΛੜ੒͢Δͨͼʹ ৽͍͠ ཚ਺ྻ͕ಘΒΕΔ͜ͱʹͳΔ ཚ਺

  45. w ҆શͳཚ਺Λੜ੒ʹ͸ 4FDVSF3BOEPNϞδϡʔ ϧΛར༻͢ΔʢηογϣϯΩʔ΍伴ͷੜ੒ͳͲ ʹద͍ͯ͠Δʣ w CBTFϝιου΍ SBOEPN@CZUFT IFYͱݴͬ ͨϝιου͕͋Δ

    w Ҿ਺ʹόΠτ਺Λࢦఆ͢Δ͜ͱͰ ͦͷ௕͞ͷϥ ϯμϜͳόΠτྻ͕ฦΔ ཚ਺
  46. w 4FDVSF3BOEPN࢖༻ྫ ཚ਺

  47. ਺্͑͛

  48. w *OUFHFSΫϥε͸ॲཧͷճ਺΍഑ྻͷཁૉ਺ͳͲ Λ਺্͑͛ΔͨΊʹ΋࢖ΘΕΔ w ͜ͷઅͰ঺հ͢Δͷ͸ ࢦఆ͞Εͨճ਺͚ͩॲཧ Λ܁Γฦ͢ΠςϨʔλ w UJNFT VQUP

    EPXOUP TUFQ ਺্͑͛
  49. w OUJNFT\cJcʜ^
 Oճͷ܁Γฦ͠Λߦ͏ϒϩοΫม਺Jʹ౉͞ΕΔ ஋͸ʙOͰ͋Δ ਺্͑͛

  50. w GSPNVQUP UP \cJcʜ^
 GSPN͔ΒUPʹୡ͢Δ·ͰJΛͭͣͭՃࢉ͠ͳ͕ Β܁Γฦ͢ʢUPGSPNճϧʔϓʣ w UPGSPNͷ৔߹͸ϧʔϓ͠ͳ͍ ਺্͑͛

  51. w GSPNEPXOUP UP \cJcʜ^
 GSPN͔ΒUPʹୡ͢Δ·ͰJΛͣͭݮΒ͠ͳ͕Β ܁Γฦ͢ w GSPNUPͷ৔߹͸ϧʔϓ͠ͳ͍ ਺্͑͛

  52. w GSPNTUFQ UP TUFQ \cJcʜ^
 GSPN͔ΒUP·ͰTUFQࠁΈͰ܁Γฦ͢ w ʮTUFQ͔ͭGSPNUPͷ৔߹ʯ·ͨ͸ʮTUFQ ͔ͭGSPNUPͷ৔߹ʯ͸܁Γฦ͞ͳ͍ ਺্͑͛

  53. w UJNFT VQUP EPXOUP TUFQϝιου͸ ݺͼग़ ͠ͷࡍʹҾ਺Λ౉͞ͳ͚Ε͹&OVNSBUFSΦϒδΣ Ϋτ͕ฦΔ w NBQ΍pSTU΍NBYͱ͍ͬͨ&OVNSBUPSΫϥεͷ

    ϝιουͰऩूͰ͖ΔΑ͏ʹͳΔ ਺্͑͛
  54. ؙΊޡࠩ

  55. w ΍ͳͲਐ਺Ͱ͸ද͢͜ͱͷग़དྷͳ͍ු ಈখ਺఺਺ʹ͍ͭͯ͸ޡࠩΛؾʹ͢Δඞཁ͕͋ Δ w ্ͷΑ͏ʹ੔਺ͷׂΓࢉͱͯ͠ද͢͜ͱ͕Ͱ͖ Δ৔߹͸ 3BUJPOBMΦϒδΣΫτΛ༻͍Δ͜ͱͰ ؙΊޡ͕ࠩͳ͍Α͏ʹԋࢉ͢Δ͜ͱ͕Ͱ͖Δ w

    CJHEFDJNBMͱ͍͏ͷ΋͋ΔΑ ؙΊޡࠩ
  56. ࠓճͷ
 ·ͱΊ

  57. ·ͱΊ w 3VCZͰ͸੔਺΍ුಈখ਺఺਺͚ͩͰͳ͘ ༗ཧ਺ ΍ෳૉ਺Λѻ͏Ϋϥε͕ଘࡏ͢Δ w *OUFHFSΫϥεͰ͸Ϗοτԋࢉ΋༻ҙ͞Ε͍ͯΔ w 3BOEPNΫϥεʹΑٖͬͯࣅཚ਺Λੜ੒͢Δ࢓૊ Έ͕ఏڙ͞Ε͍ͯΔ

    w UJNFT VQUP EPXOUP TUFQϝιου͸ ݺͼग़͠ ͷࡍʹҾ਺Λ౉͞ͳ͚Ε͹&OVNSBUFSΦϒδΣΫ τ͕ฦΔ