Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 我该如何设置一个";获取;使用默认输入值调用?_Ruby - Fatal编程技术网

Ruby 我该如何设置一个";获取;使用默认输入值调用?

Ruby 我该如何设置一个";获取;使用默认输入值调用?,ruby,Ruby,如果我有一个gets.chomp语句,如何将其设置为默认输入为自定义消息 favorite_ice_cream = gets.chomp(default_message) #I know this isn't valid Ruby syntax => Chocolate 我希望能够在终端中编辑输入字符串“chocolate”,然后再将其作为用户输入输入。没有内置的方法可以做到这一点。您必须实现一个线程,等待几分之一秒,以便在get命令就位并运行的情况下写入STDIO(输入)。除此之外

如果我有一个
gets.chomp
语句,如何将其设置为默认输入为自定义消息

favorite_ice_cream = gets.chomp(default_message)  #I know this isn't valid Ruby syntax

=> Chocolate

我希望能够在终端中编辑输入字符串“chocolate”,然后再将其作为用户输入输入。

没有内置的方法可以做到这一点。您必须实现一个线程,等待几分之一秒,以便在
get
命令就位并运行的情况下写入STDIO(输入)。除此之外,您只需将其打印到屏幕上,并让用户重新键入即可

我建议用户输入gem。您可以使用
ask
而不是
get
,并提供一个默认值:
ask(“公司?”){q | q.default=“无”}
哪个输出
公司|无|
。这样,您只需点击
ENTER
键,即可使用默认的none,也可以键入(但不编辑)新条目

有了highline,你就不必使用chomp了


但您的问题的答案是,在
get
等待输入时,使用线程将IO流写入输入。

您将浏览器行为与控制台混淆了。它们在功能上是天壤之别。为什么您希望gets语句有一个“默认值”?这应该有什么行为?听起来您应该在之后验证输入。或者,正如@theTinMan所说,你可能会把一些东西和另一些东西混淆起来。