ruby - Ruby 问题:我的“gets”函数在“puts”语句之前执行
问题描述
我正在学习 Ruby,我尝试了一个简单的代码:
system "clear"
print "What is your name?"
name = gets.chomp
puts name
puts "Hello #{ name.capitalize }, how are you?"
并且输出已准备好输入而不显示请求的打印。然后在我输入一个字符串后,它会显示打印:
George
What is your name?George
Hello George, how are you?
请帮忙。我很困惑。谢谢!
解决方案
这可能是由输出缓冲引起的,应该通过$stdout.sync = true
在第一条print
语句之前添加来修复。
另一种解决方案是在语句之后调用$stdout.flush
手动刷新输出或替换为(但这会添加换行符)。print
print
puts
推荐阅读
- github - 设置 Travis-CI 以仅构建已批准的拉取请求
- node.js - 在猫鼬中,如果值为 null,则不应将其添加到 MongoDB
- aem - AEM Query Builder 多个属性值
- heroku - Heroku 缺少必需的标志:-a,
- vba - 根据输入列值选择列表框的行
- c# - 用于批处理的 Azure 服务总线队列最大更新消息锁
- django - 如何在管理面板中限制样本
- ios - 在幻灯片 iOS APP 中从 URL Xcode 9 加载图像
- selenium - 使用 Nunit 3 控制台无法正确运行测试
- r - 如何从合并的 GLM 中提取 AIC 和对数似然?