Uraraの作業ログ(β)

※がついている機能はパスワード入力が必要 

.

5月28日作業ログ

タグ: Ruby

Article: 範囲リテラル
1..10 #10以下
1...10 #10未満
"a".."z" #a~zまで

この辺はRangeクラスのインスタンスになる。


Rangeオブジェクトは
for i in 1..10
p i * i
end

みたいな感じで書く
範囲以上指定したら無視される(Exceptionとかは投げない)
> a = ["a","b","c","d","e"]
=> ["a", "b", "c", "d", "e"]

> a[2,4]
=> ["c", "d", "e"]

>a[2..3] #a[3]を含む
=> ["c", "d"]

>a[2...3] #a[3]を含まない
=> ["c"]

case文の評価を変数に叩き込める

a = 10
b = case a
when 1 then
1
else
2
end

p b #=> 2

カンマで区切ると複数の条件を指定できる

case 4
when 1,2 then; p 1
when 3,4 then; p 2
end


case文の評価は===で行われる
Module, Class等ではオーバーライド(ってRubyで言うっけ?)されてる
特にRangeでは包含判定が行われるので
case 7
when 1..5 then; p 1
when 5..10 then; p 2
end
とすると
5..10に含まれるため2が出力される


whileとuntil
コードから感じ取れ!
whileは包含判定をするため===
untilは普通の比較を行うため==


i = 0
while (0..4) === i do
p "yaa" + i.to_s
i += 1
end

#=>
"yaa0"
"yaa1"
"yaa2"
"yaa3"
"yaa4"

i = 0
until i == 5 do
p "yaa" + i.to_s
i += 1
end

#=>
"yaa0"
"yaa1"
"yaa2"
"yaa3"
"yaa4"



有難いコメント一覧

コメントを書いてあげる


御芳名
コメント:
Edit | Back