funfunfun36
▲
PREV
------ ●
TOP
● ------
NEXT
▼
配列の要素をまとめてほいさっさ!!
配列の要素にある操作をする場合、いちいち取り出して変更・・・
また入れ替えとかするのってめんどいじゃん!!
そこでご登場するのがこれからやる「配列の全ての要素に対して同じ操作をする」ってやつさ。
「ブロック」ってのを使うわけだけど、これがほんとうに便利なのだ。
「全ての要素に対して」っていったけど、
条件に合ったものだけに対してとかもあるからだいじょ〜ぶ!!(だと思う・・・)
■配列の全ての要素に同じ操作をする
まずはもう一度「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
FunFunFunMorphic
last edited on 25 March 2004 at 5:25:44 am by tk0005-202x210x196x109.ap-TK.usen.ad.jp
funfunfun35
last edited on 17 June 2007 at 7:28:56 am by localhost.localdomain
funfunfun37
last edited on 18 June 2007 at 5:27:42 am by localhost.localdomain