:pぴー.sendせんど(:pぴー, :pぴー)

mokoaki
mokoriso@gmail.com

2017/07/22

構文メモ

Ruby技術者認定試験の書籍写経メモ

どこに書けばよいのかわからなかったのでここに

外部エンコード

https://docs.ruby-lang.org/ja/2.4.0/method/Kernel/m/open.html

File.open('file_name', 'r: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