如果我有gets.chomp
语句,如何设置它以使默认输入是自定义消息?
favorite_ice_cream = gets.chomp(default_message) #I know this isn't valid Ruby syntax
=> Chocolate
我希望能够在输入用户输入之前在终端中编辑输入字符串“chocolate”。
答案 0 :(得分:2)
没有内置方法可以做到这一点。您必须实现一个线程,等待一小段时间,在gets
命令就位并运行的情况下写入STDIO(输入)。除此之外,您只需将其打印到屏幕上并让该人员重新输入。
我推荐gem highline用于用户输入。您可以gets
使用ask
而不是ask("Company? ") { |q| q.default = "none" }
,而是提供默认值:Company? |none|
,输出ENTER
。这样您只需点击gets
键即可使用默认无,也可以输入(但不能编辑)新条目。
使用highline你不必使用chomp。
但问题的答案是在{{1}}等待输入时使用线程将IO流写入输入。