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

postfix dereference 徹底攻略 / effective postfix dereference

mackee
March 30, 2018

postfix dereference 徹底攻略 / effective postfix dereference

Gotanda.pm #16

mackee

March 30, 2018
Tweet

More Decks by mackee

Other Decks in Programming

Transcript

  1. postfix dereference
    పఈ߈ུ
    @mackee_w a.k.a macopy
    Gotanda.pm #16

    View Slide

  2. ୭ˠ
    • twitter: @mackee_w
    • GitHub: mackee
    • kuiperbelt/kuiperbelt : WebSocketศར܅
    • ࠷ۙPerl Hackers Hubʹςετͱ͔ͷهࣄΛॻ
    ͍ͨ

    View Slide

  3. postfix
    dereference
    ͬͯԿ

    View Slide

  4. postfix dereference
    $hashref->%*
    $arrayref->@*

    View Slide

  5. postfix dereference
    $hashref->%*
    $arrayref->@*

    View Slide

  6. postfix dereference
    $hashref->%*
    $arrayref->@*

    View Slide

  7. ղઆ

    View Slide

  8. postfix dereference
    %{$hashref}
    ||
    $hashref->%*

    View Slide

  9. postfix dereference
    @{$arrayref}
    ||
    $arrayref->@*

    View Slide

  10. postfix
    ɹ= έπʹͭ͘
    dereference
    ɹ= σϦϑΝϨϯε
    ུ: postderef

    View Slide

  11. ֗ͷ੠


    ಡΊͳ͍ ͜Ε͸ศརʂ

    View Slide

  12. ϝϦο
    τ

    View Slide

  13. ϝϦοτ
    • ߦͬͯʙฦͬͯͬͯͳΒͳ͍
    %{$aaa->{bbb}}
    $aaa->{bbb}->%*
    1 2 3 4
    5 6 7
    1 2 3 4 5 6

    View Slide

  14. σϝϦοτ

    View Slide

  15. ……ͳΜͰ
    ه߸૿΍ͪ͠Όͬͨͷʁ

    View Slide

  16. ͓٬༷ɺ
    ه߸͸૿΍͓ͯ͠Γ·ͤΜɺ
    ه߸ͷ૊Έ߹ΘͤΛ૿΍ͨ͠
    ͚ͩͳͷͰ͢……

    View Slide

  17. ૊Έ߹Θͤ……

    View Slide

  18. ୭͕
    *
    ͚ͩͩͱݴͬͨ

    View Slide

  19. hash slicing
    my $hashref =
    { k1 => "v1", k2 => "v2", k3 => "v3" };
    # ී௨ͷσϦϑΝϨϯε͔ΒͷϋογϡεϥΠε
    my ($v1, $v3) = @{$hashref}{qw/k1 k3/};
    # postderefͰϋογϡεϥΠε
    my ($v1, $v3) = $hashref->@{qw/k1 k3/};

    View Slide

  20. ࣮࣭JSͷobject
    destructuringͰ͸ʁʁʁ
    ※ӈลʹ΋ॻ͔ͳ͍ͱ͍͚ͳ͍ͷͰҧ͍·͢
    https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

    View Slide

  21. ·ͱΊ
    • ʢ໨ͱख͕֮͑Ε͹ʣศར
    • *͚ͩͰ͸ͳ͍ɻΉ͠ΖͦΕҎ֎͕ศར
    • v5.24͔Βexperimental֎Εͨɻ࢖͑·
    ͢ʂʂʂʂ
    • ࠓճͷίʔυ͸શ෦use v5.24.0;ͯ͠·͢

    View Slide

  22. http://perldoc.jp/docs/perl/5.24.0/perl5240delta.pod

    View Slide

  23. postderef_qqͬͯͳʹ

    View Slide

  24. postderef_qq
    my $hashref =
    { k1 => “v1",
    k2 => "v2",
    k3 => "v3" };
    print "[$hashref->@{qw/k1 k3/}]\n";
    # => [v1 v3]

    View Slide

  25. ͳΔ΄Ͳͳʁ

    View Slide

  26. csvΈ͍ͨʹग़ͨ͠Γ
    my @columns = qw/c1 c2 c3/;
    my $data = [
    { c1 => "aa", c2 => "bb", c3 => "cc" },
    { c1 => "dd", c2 => "ee", c3 => "ff" },
    { c1 => "gg", c2 => "hh", c3 => "ii" },
    ];
    $" = ",";
    print "@columns\n";
    print "$_->@{@columns}\n" for @$data;

    View Slide

  27. csvΈ͍ͨʹग़ͨ͠Γ
    $ perl postderef.pl
    c1,c2,c3
    aa,bb,cc
    dd,ee,ff
    gg,hh,ii

    View Slide

  28. Ͳ͏Αʁʁʁʁ

    View Slide

  29. ײ૝
    • ϫϯϥΠφʔͱ͔Ͱศརͦ͏
    • jqͷ୅ΘΓʹ࢖͏ͱ͔
    • ͱ͸͍͑·ͣv5.24ʹ্͛Δͱ͜Ζ͔Β……

    View Slide