Ruby 如何使用;获取;及;获取.chomp";红宝石色
我了解到,Ruby 如何使用;获取;及;获取.chomp";红宝石色,ruby,Ruby,我了解到,gets创建了一个新行,并要求用户输入一些东西,而gets.chomp除了不创建新行之外,做了同样的事情gets必须返回一个对象,这样您就可以对其调用方法,对吗?如果是这样,让我们将get返回的对象命名为tmp,然后您可以调用tmp的chomp方法。但是在获取返回tmp之前,它应该在屏幕上打印一行新行。那么,chomp做什么呢?在创建新行后,它是否会删除它? 重新阐述我的问题的另一种方式是:当我调用get.chomp时是否执行了以下操作 获取打印新行 获取返回tmp tmp.chomp
gets
创建了一个新行,并要求用户输入一些东西,而gets.chomp
除了不创建新行之外,做了同样的事情gets
必须返回一个对象,这样您就可以对其调用方法,对吗?如果是这样,让我们将get
返回的对象命名为tmp
,然后您可以调用tmp
的chomp
方法。但是在获取
返回tmp
之前,它应该在屏幕上打印一行新行。那么,chomp
做什么呢?在创建新行后,它是否会删除它?
重新阐述我的问题的另一种方式是:当我调用get.chomp
时是否执行了以下操作
获取
打印新行获取
返回tmp
tmp.chomp
删除新行这是正确的顺序吗?
获取
允许用户输入一行并将其作为值返回给程序。此值包括尾随换行符。如果随后对该值调用chomp
,则断线被切断。因此,不,你所拥有的是不正确的,应该是:
获取
获取一行文本,包括末尾的换行符。
- 这是用户输入
获取
将该行文本作为字符串值返回chomp
,将删除换行符gets
的返回值指定给名为tmp
的变量,该值是一个字符串chomp
删除了尾随的新行
实际上,chomp
所做的是删除字符串末尾的输入字符(\n
)。每次键入一个字符,然后按Enter键获取所有字母和Enter键的新行字符(“\n
”)
获取
是用户的输入。另外,最好知道*get
表示“get string”,而put
表示“put string”。这意味着这些方法仅处理字符串。chomp是从字符串中删除尾随新行字符即“\n”的方法。
无论何时使用“gets”从用户获取i/p,它都会在字符串末尾追加新行字符,即“\n”。因此,要从字符串中删除“\n”,请使用“chomp”
str=“你好,ruby\n”
str=str.chomp
放置str
o/p
“Hello ruby”例如:
x = gets
y = gets
puts x+y
及
现在分别运行这两个示例并查看差异。
chomp
返回一个新字符串,其中给定的记录分隔符从str
的末尾移除(如果存在)
有关更多信息,请参阅。- “gets”允许用户输入,但将在字符串后添加新行(字符串表示文本或字符序列) “gets.chomp”允许用户输入,就像“gets”一样,但是有 不会是在字符串后添加的新行
puts "Enter first text:"
text1 = gets.chomp
puts "Enter second text:"
text2 = gets.chomp
puts text1 + text2
获取:
复制粘贴我给您的代码,运行,您将看到并知道它们都是不同的。
get
不会创建新行。用户输入它<代码>获取只传递它。您试图指出的内容,用户已经知道了。问题是关于问题的澄清。对于任何想知道这有什么作用的人,请在IRB或Pry中运行示例,这将更加明显。要澄清:chomp
删除单个尾随的新行字符。如果存在多个尾随新行,则必须循环直到它们全部消失,或者必须以另一种方式剥离它们。新行字符不是由gets
添加的,它是键盘驱动程序在按下该键后返回的输入字符gets
仅返回所给的内容,并在看到“\n
”时将控制权返回给代码。
x = gets.chomp
y = gets.chomp
puts x+y
puts "Enter first text:"
text1 = gets.chomp
puts "Enter second text:"
text2 = gets.chomp
puts text1 + text2
puts "Enter first text:"
text1 = gets
puts "Enter second text:"
text2 = gets
puts text1 + text2