Upgrade to Pro — share decks privately, control downloads, hide ads and more …

文字列操作に見るRubyとRustの比較文字列操作に見るRubyとRustの比較

 文字列操作に見るRubyとRustの比較文字列操作に見るRubyとRustの比較

D400e6d92f9a69b60d9cfdff1dc9a98e?s=128

Kazushige Tominaga

October 25, 2017
Tweet

Transcript

  1. จࣈྻૢ࡞ʹݟΔ3VCZͱ3VTUͷൺֱ

  2. 2 Fablic, inc. Software Engineer 5PNNZ @tooooooooomy ϓϩϑΟʔϧ @kazu9su ओʹαʔόʔαΠυͷ։ൃΛ୲౰

  3. 3 ϑϦϧ '3*- ʮཉ͍͠ʯ͕Έ͔ͭΔָఱͷϑϦϚΞϓϦ 

  4. 4 ͓஌Βͤ 7JN$POGεϙϯαʔͰ͢ 'BCMJDWJNओ࠵ͯ͠·͢ &CJTVSCओ࠵ͯ͠·͢ ࣍ճ͸ ਫ ʹ։࠵͠·͢

  5. લఏ 5

  6. 6 σϓϩΠϑϩʔͷվળ w &OHJOFԽͨ͠ϦϙδτϦͷσϓϩΠϑϩʔΛվળ

  7. 7 &OHJOFΠϝʔδਤ 4FBSDI "ENJO 8FC "1* &OHJOF

  8. 8 લఏ w ֤ϦϙδτϦ͔Β(FNύοέʔδͱͯ͠ࢀর͞ΕΔ w ϦϙδτϦ͸ɺ೚ҙͷόʔδϣϯΛλάͰࢀর͢Δ w ػցతʹλάΛ੾Γ͍ͨ

  9. 9 ςϯϓϨʔτͷ࡞੒ w λάੜ੒ʹඞཁͳ෦෼ΛςϯϓϨԽ w ϓϧϦΫ࡞੒࣌ʹࣗಈͰૠೖ͞ΕΔ w ςϯϓϨͷ಺༰ΛݩʹHJUUBHΛ੾ΔεΫϦϓτ Λ࡞੒

  10. 10 վળલͷϑϩʔ  ϓϧϦΫΛϚʔδ  ΫϦοϓϘʔυʹίϐʔ  εΫϦϓτΛ࣮ߦ PO-PDBM 

     HJUIVCͷUBH࡞੒ϖʔδͷϦϯΫ͕දࣔ͞ΕΔ  ΫϦοΫͨ͠ϦϯΫΛ౿ΜͰϦϦʔε PO(JUIVC
  11. 11  ϓϧϦΫΛϚʔδ  ΫϦοϓϘʔυʹίϐʔ  εΫϦϓτΛ࣮ߦ PO-PDBM  

    HJUIVCͷUBH࡞੒ϖʔδͷϦϯΫ͕දࣔ͞ΕΔ  ΫϦοΫͨ͠ϦϯΫΛ౿ΜͰϦϦʔε PO(JUIVC ͜ͷ෦෼ΛࣗಈԽ վળલͷϑϩʔ
  12. 12 )08 w 1VMM3FRVFTUΠϕϯτ௨஌ ɾ1VMM3FRVFTUΛϚʔδ τϦΨʔ w UBH࡞੒εΫϦϓτΛ࣮ߦ w 4MBDLʹ௨஌

    ᶃ ᶄ ᶅ ᶆ
  13. 13 վળޙͷϑϩʔ  ϓϧϦΫΛϚʔδ  TMBDLʹ௨஌͞ΕͨϦϯΫΛΫϦοΫͯ͠ϦϦʔε  IFSPLV)VCPUͰࣗಈԽ ௨஌͕4MBDLʹ͘Δ

  14. 14 ͦͷޙͷ໰୊ w4MBDL௨஌͕஗͍ 13Ϛʔδޙ໿ೋ෼  w#VOEMFJOTUBMMʹ͕͔͔͍࣌ؒͬͯͨ w 3VTUͰॲཧΛॻ͖௚͢͜ͱͰղܾ w όΠφϦϑΝΠϧͳͷͰίϯύΠϧ͍Βͣ

    w ࢀߟ 3VTUͰจࣈྻΛૢ࡞͢Δ w ౰વNSVCZͰ΋͓̺
  15. ύʔε 15

  16. 16 ύʔε w ςΩετΛղੳͯ͠ඞཁͳߏ଄ Λ࡞Δ w ཉ͍͠৘ใ w ߋ৽ͷϨϕϧ w

    มߋ಺༰
  17. 17 3VCZ

  18. 18 3VTU

  19. 19 ߟ࡯ w লུՄೳ˱جຊతʹ͸ඞਢ w DBTFจ˱ύλʔϯϚον w ಈతʹม਺ΛఆٛՄೳ˱࢖༻͢Δม਺ ΋͘͠͸ߏ଄ ͸ࣄલʹએݴඞਢ

    w ೚ҙͷέʔεͷΈࢦఆ͢Ε͹0,˱͢΂ͯͷύλʔϯͷ໢ཏ͕ඞਢ w 3VCZ,BJHJͰ3VCZͷύλʔϯϚονͷఏҊ͕͋Γ·ͨ͠Ͷ w ಈతͳύλʔϯϚονΒ͍͠ w ࠓճ͸໰୊ͳ͔ͬͨͷͰεϧʔͯ͠Δ͚Ͳɺ3VCZͩͱਖ਼نදݱͯ͠·͢Ͷ
  20. ਖ਼نදݱ 20

  21. 21 ਖ਼نදݱ w ύʔεͨ͠৘ใΛ࢖͍͍ͨঢ়ଶ ʹՃ޻

  22. 22 3VCZ

  23. 23 3VTU

  24. 24 ߟ࡯ w ਖ਼نදݱ͸ݴޠඪ४ Έ͍ͨͳ΋Μͩͱࢥ͍ͬͯΔ ˱֎෦ϥΠϒϥϦͰ͋Δ w Զୡ͸งғؾͰਖ਼نදݱ͍ͯ͠Δ˱ͦΕͧΕͷؔ਺͕ฦ͢ܕΛ೺Ѳ͠ɺࣗ෼ ͕΍Γ͍ͨ͜ͱʹ߹Θͤͯత֬ʹܕม׵ͳͲΛߦ͏

  25. จࣈྻͷੜ੒ 25

  26. 26 จࣈྻͷੜ੒ w όʔδϣϯΛ্͛Δ w ྫ ݩW w ."+03ˠW w

    .*/03ˠW w 1"5$)ˠW
  27. 27 3VCZ

  28. 28 3VTU

  29. 29 ߟ࡯ w ԋࢉ͍ͨ͠Μ͔ͩΒ౰વ਺஋ͱͯ͠ѻ͏˱จࣈྻͳΜ͔ͩΒܭࢉͳΜͯͰ ͖ΔΘ͚ͳ͍ w TJOUBYͰจࣈྻΛมߋ͢Δ͜ͱΛ͓࡯͠˱഑ྻΛ࡞ͬͯ࠷ޙʹจࣈྻʹม ׵

  30. ଎౓ܭଌ 30

  31. 31 ଎౓ܭଌ w 3VCZ  ʜ

  32. 32 ଎౓ܭଌ w 3VCZ  ʜT

  33. 33 ଎౓ܭଌ w 3VCZ  ʜT w 3VTU 

  34. 34 ଎౓ܭଌ w 3VCZ  ʜT w 3VTU  ʜ

  35. 35 ଎౓ܭଌ w 3VCZ  ʜT w 3VTU  ʜT

  36. 36 ·ͱΊ w ΍ͬͯΈͨΒͦΕͧΕͷݴޠͷߟ͑ํͷҧ͍Λͻ͠ͻ͠ͱײͨ͡ w 3VCZ w ʮͱΓ͋͑ͣಈ͘ʯ͜ͱͷ͋Γ͕ͨΈͱੜ࢈ੑ w งғؾͰॻ͚Δ͍͍ͬͯΑͶ

    w ͪΌͪΌͬͱԿ͔Λ࡞Δʹ͸࠷ద w 3VTU w ࣗ෼͕ԿΛ͍ͨ͠ͷ͔ɻΛਅ݋ʹߟ͑ΔػձΛ༩͑ͯ͘ΕΔ w งғؾͰ͸ઈରʹॻ͚ͳ͍ w ίϯύΠϧ࣌఺Ͱࣗ෼Ͱ༧ظ͠ͳ͍όάͳͲΛ௵ͯ͘͠ΕΔ w ܦݧ͸ͳ͍͚Ͳ ͋Δఔ౓Ҏ্ͷن໛ ਓ਺ɾཁ݅΋Ζ΋Ζ ͷγεςϜ Λݫີʹ࡞͍ͬͯ͘ͷʹ޲͍ͯΔͷ͔΋͠Εͳ͍
  37. 37 'BCMJDͰ͸<3VCZJTUͱ3VTUBDFBO>Λੵۃ࠾༻தʂ

  38. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠