構文メモ
どこに書けばよいのかわからなかったのでここに
外部エンコード
https://docs.ruby-lang.org/ja/2.4.0/method/Kernel/m/open.html
File.open('file_name', 'r:ext_enc:int_enc')
- ext_enc 外部エンコード 読み込む時にはこのエンコーディングが指定される、出力する時もそのエンコーディングに変換する
- int_enc 内部エンコード 読み込んだ文字列がext_encでエンコーディングされた文字列とみなしてint_encへと変換して内部では使用する
まぁ、Shift_jisのファイルを読み込みたい時には
File.open('file_name', 'r:shift_jis:utf-8')
File.open('file_name', 'w+:shift_jis:utf-8')
だとかすればおk
case式
case 1
when 1
p 'a'
end
"a"
=> "a"
case 1
when 1
p 'a'
when 1
p 'b' # こちらは実行されない
end
"a"
=> "a"
case 10
when 1
p 'a'
else
p 'b'
end
"b"
=> "b"
case 3
when 1, 2
p 'a'
when 3, 4
p 'b'
end
"b"
=> "b"
case 5
when 1..2, 5..6
p 'a'
when 3..4
p 'b'
end
"a"
=> "a"
while式
条件を満たす間ループ
while true
p '無限ループ CTRL-C' ; sleep 0.1
end
むりやり範囲使ったけどつまらない例だわ
count = 0
while (0..5) === count do
p count
count += 1
end
0
1
2
3
4
5
=> nil
後置while 必ず一回は実行される、みんな知ってるね!
count = 0
begin
p count
count += 1
end while (0..5) === count
0
1
2
3
4
5
=> nil
while修飾子 ぶっちゃけ使わない
count = 0
p count += 1 while (0..5) === count
1
2
3
4
5
6
=> nil
until式
条件を満たすまでループ
until false
p '無限ループ CTRL-C' ; sleep 0.1
end
count = 0
until 5 == count do
p count
count += 1
end
0
1
2
3
4
=> nil
後置until 必ず一回は実行される、みんな知ってるね!
count = 0
begin
p count
count += 1
end until 5 == count
0
1
2
3
4
=> nil
until修飾子 ぶっちゃけ使わない
count = 0
p count += 1 until 5 == count
1
2
3
4
5
=> nil
for
forはスコープを作らないので内外アクセスし放題
moko = 1
for a in [1, 2, 3]
p moko
end
1
1
1
=> [1, 2, 3]
moko = 1
for a in [1, 2, 3]
moko = a
homo = a
end
p moko
3
=> 3
p homo
3
=> 3