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

たのしいString

ima1zumi
February 25, 2023
330

 たのしいString

ima1zumi

February 25, 2023
Tweet

Transcript

  1. ͨͷ͍͠String
    ϓϩάϥϛϯάݴޠRuby30प೥ه೦Πϕϯτ
    2023-02-25 ima1zumi

    View Slide

  2. Introduction
    - @ima1zumi (Mari Imaizumi)


    - Ӭ࿨γεςϜϚωδϝϯτॴଐ


    - IRB and Reline committer


    - จࣈͱจࣈίʔυ͕޷͖

    View Slide

  3. Powered by

    View Slide

  4. Ruby30प೥͓ΊͰͱ͏͍͟͝·͢🎉

    View Slide

  5. Rubyͷָ͍͠ͱ͜Ζ

    View Slide

  6. String &
    Encoding

    View Slide

  7. ࠓ೔͔Β࢖͑Δ


    จࣈͱจࣈίʔυૢ࡞


    3બ

    View Slide

  8. ᶃ ਺஋ɺόΠτྻ͔Βจࣈʹ௚͢

    View Slide

  9. ਺஋ɺόΠτྻ͔Βจࣈʹ௚͢
    • Integer#chr


    • Array#pack


    • String#force_encoding

    View Slide

  10. Integer#chr(encoding)
    • ίʔυϙΠϯτΛจࣈͱͯ͠ղऍ


    • Ҿ਺ͳ͠ͷ৔߹US-ASCIIɺASCII-8BITɺEncoding.default_internalͷ
    ॱͰղऍ

    View Slide

  11. Array#pack
    • ഑ྻͷ಺༰ΛҾ਺ʹैͬͯύοΫ


    • "U*" ͸Unicode codepointΛUTF-8ͱͯ͠ղऍͯ͠ฦ͢

    View Slide

  12. String#force_encoding
    • จࣈίʔυͷΈΛมߋ͠ɺόΠτྻ͸มߋ͠ͳ͍


    • ͜͜Ͱ͸όΠφϦ(ASCII_8BIT)ͷจࣈίʔυΛUTF-8ʹมߋ

    View Slide

  13. ᶄจࣈԽ͚Λ࡞Δ

    View Slide

  14. จࣈԽ͚Λ࡞Δ
    • String#force_encoding


    • String#encode

    View Slide

  15. จࣈԽ͚Λ࡞Δ

    View Slide

  16. จࣈԽ͚Λ࡞Δ

    View Slide

  17. จࣈԽ͚Λ࡞Δ

    View Slide

  18. https://github.com/integrations/slack/issues/1416

    View Slide

  19. ããã«ã¡ã¯ä¸ç
    ͜Μʹͪ͸ੈք

    View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. ããã«ã¡ã¯ä¸ç
    ͜Μʹͪ͸ੈք

    View Slide

  26. ᶅจࣈίʔυΛRubyͰRubyʹ௥Ճ

    View Slide

  27. จࣈίʔυΛ௥Ճ͢Δ
    • Encoding#replicate


    • ஫ҙ఺͸ޙड़

    View Slide

  28. ΍Δ͜ͱ
    • 1. ࡞Γ͍ͨEncodingͷ਽ܗʹͳΔEncodingΛܾΊΔ


    • 2. Encoding#replicate͢Δ


    • 3. ม׵ϩδοΫΛॻ͘

    View Slide

  29. จࣈίʔυΛఆٛ͢Δ

    View Slide

  30. ม׵ϩδοΫΛॻ͘

    View Slide

  31. https://github.com/ima1zumi/ruby_encoding_iroha

    View Slide

  32. Remove Encoding#replicate
    Ruby 3.3

    View Slide

  33. View Slide

  34. View Slide

  35. Welcome to faster Encodings

    View Slide