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
printkendi başına kullandığınızda , bloklar halinde ortaya çıkabilir, çünkü hemen yazmak yerine tamponda saklanabilir (tam olarak nedenini bilmiyorum). İşletim sistemine özgü de olabilir.
syncbir 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ı