Ben bir döngü geçer bir yöntem var - bir "çıktı" istiyorum. her döngüde konsolda görebiliyorum. ancak, her kullandığımda bir satır sonu koyar puts "."
.
Sadece sürekli bir çizgiye sahip bir yol varsa?
Ben bir döngü geçer bir yöntem var - bir "çıktı" istiyorum. her döngüde konsolda görebiliyorum. ancak, her kullandığımda bir satır sonu koyar puts "."
.
Sadece sürekli bir çizgiye sahip bir yol varsa?
Yanıtlar:
Koymak yerine yazdırmayı kullanmanız gerekir. Ayrıca, noktaların düzgün görünmesini istiyorsanız, her baskıdan sonra stdout tamponunu temizlemeniz gerekir ...
def print_and_flush(str)
print str
$stdout.flush
end
100.times do
print_and_flush "."
sleep 1
end
Düzenleme: Sadece @ rubyprince'ın yorumunu cevaplamak için floş arkasındaki mantığı bakıyordum ve bu sadece kullanarak biraz temizlenebilir $stdout.sync = true
...
$stdout.sync = true
100.times do
print "."
sleep 1
end
print
kendi başına kullandığınızda , bloklar halinde ortaya çıkabilir, çünkü hemen yazmak yerine tamponda saklanabilir (tam olarak nedenini bilmiyorum). İşletim sistemine özgü de olabilir.
sync
bir dize çıkışı için bir overkill olduğunu düşünüyorum . Sonra uygulama çok çıktı verirse daha yavaş olacaktır.
$stdout.flush
? Gerçekten gerekli .. Ruby 1.8.7 kullanıyorum ve sadece birlikte şeyler yapmışprint
.. ve ben hiçbir sorunları vardı