View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

funfunfun36


PREV ------ ● TOP ● ------ NEXTUploaded Image: fmrph.jpg


配列の要素をまとめてほいさっさ!!

配列の要素にある操作をする場合、いちいち取り出して変更・・・
また入れ替えとかするのってめんどいじゃん!!
そこでご登場するのがこれからやる「配列の全ての要素に対して同じ操作をする」ってやつさ。
「ブロック」ってのを使うわけだけど、これがほんとうに便利なのだ。
「全ての要素に対して」っていったけど、
条件に合ったものだけに対してとかもあるからだいじょ〜ぶ!!(だと思う・・・)

■配列の全ての要素に同じ操作をする

まずはもう一度「ac」を初期化します。
ま、解りやすいかな?って思っただけで、深い意味はないっす。

Alt + d ( Cmd + d )

--------------------------------------------
ac _ {2. 1. 4. 9. 10. 88. 31}
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

ac #(2 1 4 9 10 88 31)                   .




●配列の各要素に1加えます。(各要素に同じ操作を加える)
Alt + d ( Cmd + d )

--------------------------------------------
c _ ac collect: [: num | num + 1]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

c #(3 2 5 10 11 89 32)                    .




●今度は各要素を2乗します。
Alt + d ( Cmd + d )

--------------------------------------------
c _ ac collect: [: num | num squared]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

c #(4 1 16 81 100 7744 961)                 .




●20以上のものを返します。(条件に合った要素を選ぶ)

Alt + d ( Cmd + d )

--------------------------------------------
s _ ac select: [: num | num > 20]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

s #(88 31)                          .




●偶数を返します。

Alt + d ( Cmd + d )

--------------------------------------------
s _ ac select: [: num | num even]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

s #(2 4 10 88)                        .




●20以上のもので最初のものを返します。(条件に合った最初の要素を選ぶ)

Alt + d ( Cmd + d )

--------------------------------------------
d _ ac detect: [: num | num > 20]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

d 88                             .




●20以上のものではないものを返します。<Selectの逆(条件に合わない要素を選ぶ)

Alt + d ( Cmd + d )

--------------------------------------------
r _ ac reject: [: num | num > 20]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

r #(2 1 4 9 10)                       .




●要素の合計を返します。(次の要素に対する操作を蓄積する)

Alt + d ( Cmd + d )

--------------------------------------------
i _ ac inject: 0 into: [: total : next | total + next]
--------------------------------------------

確認の為プリント・イット Alt + p ( Cmd + p )

i 145                             .






PREV ------ ● TOP ● ------ NEXT







■ MEMO ■

Links to this Page