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

Fd09da0d9751bb7875ef4ff7e6201860?s=47 muttan
November 22, 2016

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

Fd09da0d9751bb7875ef4ff7e6201860?s=128

muttan

November 22, 2016
Tweet

Transcript

  1. ͨͷ͍͠3VCZୈষ

  2. ͨͷ͍͠
 ʋ ?@?P ϊ

  3. 3VCZ

  4. ୈճ

  5. ୈষϒϩοΫ

  6. ϒϩοΫͱ͸

  7. w ϒϩοΫͱ͸ ϝιουݺͼग़͠ͷࡍʹҾ਺ͱҰ ॹʹ౉͢͜ͱ͕Ͱ͖ΔॲཧͷմʢFBDI΍UJNFT ϝιουΛར༻͢Δࡍʹ౉ͨ͠΋ͷʣ w ҎԼͷྫͰ͸ճϒϩοΫ͕࣮ߦ͞ΕΔʢEP FOEͷ·Ͱͷ෦෼͕ϒϩοΫʣ ϒϩοΫͱ͸

  8. w ͜ͷΑ͏ͳݺͼग़͠ํΛ ϒϩοΫ෇͖ݺͼग़͠ PSϒϩοΫ෇͖ϝιουݺͼग़͠ͱݺͿʢ෮शʣ ϒϩοΫͱ͸ʢ෮शʣ ΦϒδΣΫτϝιου໊ Ҿ਺ ʜ EPcม਺ ม਺

    ʜc ॲཧ FOE ΦϒδΣΫτϝιου໊ Ҿ਺ ʜ \cม਺ ม਺ ʜc ॲཧ ^ ϒϩοΫม਺
  9. ϒϩοΫͱ͸

  10. w ʢࠓݱࡏʣ࠷΋਎ۙͳϒϩοΫͷ࢖͍Έͪͱ͠ ͯ ܁Γฦ͠ʹ࢖༻͢Δ΋ͷ͕͋Δ w ϒϩοΫΛड͚औΔϝιουͷ͏ͪ ܁Γฦ͠Λ ߦ͏΋ͷΛΠςϨʔλͱ͍͏ ܁Γฦ͠

  11. w ྫʣ഑ྻͷ֤ཁૉΛେจࣈʹͯ͠ग़ྗ͢Δ
 
 
 w ྫʣ)BTIͷ֤ཁૉΛऔΓग़͠ ߹ܭΛٻΊΔ
 
 
 


    )BTI͸<LFZ WBMVF>ͱ͍͏഑ྻ͕౉͞ΕΔ ܁Γฦ͠ 1IBTI@FBDISC࣮ߦ
  12. w ྫͷϓϩάϥϜ͸ ଟॏ୅ೖͷϧʔϧΛద༻͢ Δͱ ϒϩοΫม਺ͷड͚औΓํΛҎԼͷΑ͏ʹ ͢Δ͜ͱ΋Ͱ͖Δ
 
 
 
 w

    JUFN<LFZ WBMVF>
 LFZ WBMVFJUFNͱಉ͡ϧʔϧ ܁Γฦ͠ cJUFNcˠcLFZ WBMVFc 1IBTI@FBDISC࣮ߦ
  13. w ΠςϨʔλҎ֎ʹ΋ ޙॲཧΛ࣮֬ʹ࣮ߦͤ͞Δ ͱ͍ͬͨ࢖͍ํΛ͢Δ͜ͱ΋Ͱ͖Δ ఆܕͷॲཧΛӅ͢ DMPTF͕ͳ͍

  14. w 'JMFPQFOϝιουʹϒϩοΫΛ౉͢ͱ ϑΝΠϧ ΦϒδΣΫτΛϒϩοΫม਺ͱͯ͠Ұ౓͚ͩϒϩο ΫΛىಈ͢Δ w ໌ࣔతʹDMPTFΛॻ͔ͳͯ͘΋಺෦Ͱดͯ͘͡Ε ͍ͯΔʢΤϥʔ͕ىͬͯ͜΋࣮֬ʹด͡Δʣ ఆܕͷॲཧΛӅ͢ DMPTF͕ͳ͍

    1pMF@PQFOSC࣮ߦ
  15. w pMF@PQFOSC͸ҎԼͷΑ͏ͳॲཧ͕಺෦తʹߦΘ Ε͍ͯΔ͜ͱʹͳΔ ఆܕͷॲཧΛӅ͢

  16. w 'JMFPQFOϝιουʹϒϩοΫΛ౉͢ͱ ϑΝΠϧ Λѻ͏্Ͱ࣮֬ʹඞཁʹͳΔॲཧʢϑΝΠϧΛ ด͡Δ Τϥʔॲཧ౳ʣΛॻ͔ͣͱ΋ߦ͏ w ܾ·Γ͖ͬͨॲཧ͸ϝιουʹҕͶ Ϣʔβʔଆ Ͱඞཁͳॲཧ͚ͩهड़͢Δͱ(00%

    ఆܕͷॲཧΛӅ͢
  17. w ཁૉͷฒ΂ସ͑Λ͢ΔTPSU TPSU@CZϝιουΛ ྫʹߟ͑Δ w ιʔτͷج४͸༷ʑ͋ΔͨΊ ͦͷج४͝ͱʹιʔ τϝιουΛࢦఆ͍ͯͯ͠͸ϝιου਺͕ଟ͢ ͗Δ w

    ͦͷͨΊ"SSBZTPSU͸ ൺֱج४ΛϒϩοΫͰ ౉͢͜ͱͰ্هͷ໰୊ʹରԠ͍ͯ͠Δ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
  18. w Ҿ਺ແ͠Ͱ"SSBZTPSU ΛݺΜͩ৔߹ ԋࢉࢠͰൺֱ ͨ͠ॱʹͳΔ
 
 
 
 
 


    w จࣈྻͷ৔߹͸ࣙॻॱʹͳΔ w େจࣈখจࣈ͸େจࣈ͕༏ઌ͞ΕΔ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ ৚݅ ݁Ռ BC ʢΑΓখ͍͞ʣ BC  BC ʢΑΓେ͖͍ʣ
  19. w "SSBZTPSUͷྫʢϒϩοΫͳ͠ʣ
 
 w "SSBZTPSUͷྫʢจࣈ਺Ͱঢॱιʔτʣ
 
 
 ϒϩοΫ࠷ޙͷ͕࣮ࣜߦ݁ՌͱͳΔͷͰ BC ͷͱ͖͸CBͰൺֱ͠ͳ͚Ε͹ͳΒͳ͍

    ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
  20. w "SSBZTPSUͷྫ
 
 w ͭ໨ͷ݁ՌʢBSSBZTPSUͷ৔߹ʣ͸ <lz  lz lz lz

    lz>ͱͳΔ w ͭ໨ͷ݁ՌʢϒϩοΫΛ౉ͨ͠৔߹ʣ͸<lz  lz lz lz lz>ͱͳΔ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
  21. w ޮ཰తʹιʔτ͍ͨ͠ ܭࢉͷҰ෦Λࠩ͠ସ͑ ϒϩοΫ͕ճݺ͹Ε͍ͯͯ ݺ ͼग़͠ͰճMFOHUIϝιουΛ
 ݺͿͷͰਏ͍ 1TPSU@DPNQ@DPVOUSC࣮ߦ

  22. w ޮ཰తʹιʔτ͍ͨ͠
 
 
 
 
 
 w ౓͚ͩMFOHUIϝιουΛݺͿΑ͏ʹ͍ͨ͠ ܭࢉͷҰ෦Λࠩ͠ସ͑

    ϒϩοΫ͕ճݺ͹Ε͍ͯͯ ݺ ͼग़͠ͰճMFOHUIϝιουΛ
 ݺͿͷͰਏ͍ 1TPSU@DPNQ@DPVOUSC࣮ߦ
  23. w ͦ͜ͰTPSU@CZϝιουΛར༻͢Δ
 
 
 
 
 w JUFNMFOHUIͷ෦෼ʹؔͯ͠͸ 0 O

    ʹͳΔͷͰ ޮ཰͕ྑ͍ʢ౓͚ͩࢀর͢Δ͜ͱʹͳΔʣ ܭࢉͷҰ෦Λࠩ͠ସ͑
  24. ϒϩοΫ෇͖ϝιουΛ࡞Δ

  25. w ZJFMEͱ͍͏໋ྩΛݺͿ͜ͱͰ ϝιουʹ༩͑Β ΕͨϒϩοΫΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛ࣮ߦ͢Δ 1NZMPPQSC࣮ߦ OVNͱͳͬͨΒ
 ແݶϧʔϓ͔Βൈ͚Δ

  26. w ϒϩοΫม਺Λ౉͢͜ͱͰॲཧΛมԽͤ͞ ஋Λ ฦ͢ϝιουΛ࣮૷ͯ͠ΈΔ w GSPN͔ΒUP·Ͱͷ੔਺஋ΛॱʹऔΓग़͠ ԿΒ ͔ͷՃ޻Λߦ͔ͬͯΒ߹ܭ͢ΔϝιουΛ࡞੒ ͯ͠ΈΔ ϒϩοΫม਺Λ౉͢

    ݁ՌΛಘΔ
  27. ϒϩοΫม਺Λ౉͢ ݁ՌΛಘΔ O ͸Oͷೋ৐ CMPDL͕༩͑ΒΕ͍ͯͨΒ 1UPUBMSC࣮ߦ

  28. w ZJFMEʹҾ਺Λ౉͢ͱ ͦͷ஋͕ϒϩοΫม਺ʹ֨ ೲ͞ΕΔ
 
 
 
 w Ͱ͸ ෳ਺ͷϒϩοΫม਺Λ౉ͨ͠৔߹Ͳ͏ͳΔ

    ͷ͔ ϒϩοΫม਺Λ౉͢ ݁ՌΛಘΔ Oͷೋ৐͕ฦΔ
  29. ϒϩοΫม਺Λ౉͢ ݁ՌΛಘΔ 1CMPDL@BSHT@UFTUSC࣮ߦ ϒϩοΫม਺ΛcBcͰड͚औΔ <OJM> <> <> ϒϩοΫม਺ΛcB C DcͰड͚औΔ

    <OJM OJM OJM> < OJM OJM> <  > ϒϩοΫม਺Λc BcͰड͚औΔ <> <> <  >
  30. w ZJFMEͷҾ਺ͷ਺ͱϒϩοΫม਺ͷ਺͕ҧ͍ͬͯ ͯ΋ݺͼग़͢͜ͱ͕Ͱ͖Δ w ϒϩοΫม਺ͷ΄͏͕ଟ͍৔߹͸OJMͱͳΔ w ϒϩοΫม਺͕଍Γͳ͍৔߹͸ ஋Λड͚औΔ͜ ͱ͕Ͱ͖ͳ͍ ͱ͕ड͚औΕ͍ͯͳ͍ʣ

    ϒϩοΫม਺Λ౉͢ ݁ՌΛಘΔ 1CMPDL@BSHT@UFTUSC࣮ߦ ϒϩοΫม਺ΛcBcͰड͚औΔ <OJM>ZJFME  <>ZJFME   <>ZJFME   
  31. w ม਺ͷܗࣜͰड͚औΔͱ ϒϩοΫม਺Λ·ͱ Ίͯ഑ྻͱͯ͠ड͚औΔ w ϝιουఆٛͷࡍʹͰ͖ͯͨ Ҿ਺ͷ਺͕ෆఆͷ ৔߹ͱࣅͨಈ͖ ϒϩοΫม਺Λ౉͢ ݁ՌΛಘΔ

    ϒϩοΫม਺Λc BcͰड͚औΔ <> <> <  >
  32. w ͜͜Ͱ໰୊Ͱ͢
 
 
 
 
 
 
 w ͜ͷͱ͖ͳΜͱग़ྗ͞ΕΔͰ͠ΐ͏͔ʁ

    ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
  33. w ౴͑͸OJM w ϒϩοΫ಺ͰCSFBL͕ൃੜͨ͠৔߹ ϝιουݺ ͼग़͠ͷ஍఺·Ͱ໭ͬͯ͠·͏ͨΊ w Կ͔஋Λฦ͍ͨ͠ͱ͖͸ lCSFBLzͷΑ͏ʹҾ ਺Λ౉͢ͱྑ͍

    ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
  34. w OFYU΋ಉ༷ʹࢦఆͨ͠஋Λฦ͢ࣄ͕Ͱ͖Δ w OFYUͷ৔߹ ϒϩοΫͷͦͷճͷ࣮ߦΛதஅ࣍͠ ͷॲཧʹҠΔʢCSFBLͷΑ͏ʹऴΘΒͳ͍ʣ w OFYUʹԿ΋ࢦఆ͠ͳ͚Ε͹OJM ࢦఆͨ͠৔߹͸ͦ ͷ஋͕ฦΔ

    ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
  35. w 1SPDOFXϝιουʹϒϩοΫΛ౉͢͜ͱͰ ϒ ϩοΫͷΦϒδΣΫτΛ࡞੒͢Δ͜ͱ͕Ͱ͖Δ
 
 
 
 
 w DBMMϝιουͰݺͼग़͢ͱ

    ϒϩοΫʹॻ͔Εͨ ॲཧΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1QSPDSC࣮ߦ
  36. w ϝιουʹϒϩοΫΛ౉࣌͢ ໌ࣔతʹϒϩοΫ Λड͚औΔม਺Λࢦఆ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ ม਺໊Ͱड͚औΔ 1QSPDSC࣮ߦ

  37. w Ҿ਺໊ͱ͢Δͱ ࣗಈతʹ1SPDΦϒδΣΫτͱ ͯ͠౉͞ΕΔͷͰ ݺͼग़࣌͢͸ʮҾ਺໊DBMMʯ ͱ͢Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1SPDΦϒδΣΫτʹͳΔ DBMMͰݺͼग़͢

  38. w ม਺໊ͷલʹΛ͚ͭͯड͚औΔҾ਺ͷ͜ͱΛ 1SPDม਺ͱ͍͏ w ϒϩοΫΛ౉͞ͳ͍৔߹1SPDม਺͸OJMʹͳΔͷ Ͱ ϒϩοΫ͕Ҿ͖౉͞Ε͍ͯΔ͔Ͳ͏͔͸ม਺ ͕OJM͔ͦ͏Ͱͳ͍͔Ͱ൑அ͢Ε͹Α͍ w 1SPDҾ਺͸͢΂ͯͷҾ਺ͷதͰҰ൪࠷ޙʹͳͬ

    ͯͳ͚Ε͹ͳΒͳ͍ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ
  39. w 1SPDΦϒδΣΫτͱͯ͠ड͚औΔ͜ͱͰ ޷͖ͳ λΠϛϯάͰݺͼग़͢͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ w ϝιουͷݺͼग़͠Ҿ਺Λʮ1SPDΦϒδΣΫ τʯͷܗࣜͰ౉͢͜ͱͰ ଞͷϝιουʹ1SPD ΦϒδΣΫτΛ౉͢͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ

  40. w ྫʣ1SPDΦϒδΣΫτΛதܧ͢Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1DBMM@FBDISC࣮ߦ

  41. ϩʔΧϧม਺ͱϒϩοΫม਺

  42. w ֎Ͱ࡞ΒΕͨϩʔΧϧม਺ΛϒϩοΫ಺͔Βࢀ র͢Δ͜ͱ͕Մೳ w ϒϩοΫม਺ͱͯ͠࢖ΘΕΔม਺͸ ϒϩοΫͷ ֎ଆͷ΋ͷͱ͸ผ෺ͱͯ͠ѻΘΕΔ ϩʔΧϧม਺ͱϒϩοΫม਺ 1MPDBM@BOE@CMPDLSC࣮ߦ Z͸֎ଆͷϩʔΧϧ

    ม਺Λࢀর
  43. w ϒϩοΫ಺Ͱఆٛ͞Εͨม਺͸ ϒϩοΫͷ֎Ͱ ࢀর͢Δ͜ͱ͸Ͱ͖ͳ͍ ϩʔΧϧม਺ͱϒϩοΫม਺ Z͕ϒϩοΫͷ֎Ͱએݴ͞Ε͍ͯͳ͍
 ͨΊ/BNF&SSPSͱͳΔ

  44. w ϒϩοΫม਺Ҏ֎ʹ ϒϩοΫ಺ͰͷΈ༗ޮͳม ਺Λ࡞Δ͜ͱ͕Ͱ͖Δ w ϒϩοΫม਺ͷ͋ͱʹηϛίϩϯzzͰ۠੾ͬͯ એݴ͢Δ ϩʔΧϧม਺ͱϒϩοΫม਺ 1MPDBM@BOE@CMPDLSC࣮ߦ ϒϩοΫϩʔΧϧม਺

  45. ࠓճͷ
 ·ͱΊ

  46. ·ͱΊ w ϒϩοΫͱ͸ ϝιουݺͼग़͠ͷࡍʹҾ਺ͱҰ ॹʹ౉͢͜ͱ͕Ͱ͖Δॲཧͷմ w ܁Γฦ͠ ఆܕͷॲཧΛӅ͢ ܭࢉͷҰ෦Λࠩ͠ ସ͑Δͱ͍ͬͨ΋ͷʹ࢖͏͜ͱ͕Ͱ͖Δ

    w 1SPDOFXϝιουʹϒϩοΫΛ౉͢͜ͱͰ ϒ ϩοΫͷΦϒδΣΫτΛ࡞੒͢Δ͜ͱ͕Ͱ͖Δ w είʔϓʹؾΛ͚ͭΑ͏