要はキャリッジリターン使うと改行せずに出力結果を更新できるという話
例えば処理の進捗をコンソールに出力したいとき
1
2
3
4
5
6
7
8
9
10
11
12
13
14
100.times do |i|
puts "#{i}/100" if i % 10 == 0
end
=> 0/100
10/100
20/100
30/100
40/100
50/100
60/100
70/100
80/100
90/100
まぁ進捗はわかるから別にイイんだけどなんかダサい感
1
2
3
4
5
6
100.times do |i|
print "#{i}/100" if i % 10 == 0
end
puts # 最後の%消したいだけ
=> 0/10010/10020/10030/10040/10050/10060/10070/10080/10090/100
ダサいというか進捗分からない
1
2
3
4
5
6
100.times do |i|
print "\r#{i}/100" if i % 10 == 0
end
puts
=> 90/100
文字だと伝わらない感じだけど進捗が上書きされていくのがイイ感じ
キャリッジリターンでカーソルを先頭に戻してあげればイイということのようだ
コメント