Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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_Syntax - Fatal编程技术网

Ruby 使用!红宝石色

Ruby 使用!红宝石色,ruby,syntax,Ruby,Syntax,我是ruby的新手!我正在努力学习“!”的用法 我知道!包括,以便在适当位置修改用户的字符串;否则,Ruby将创建一个用户输入的副本并修改它 但在下面的两个程序中,我得到的输出是相同的。为什么 print "Please Enter your Input" user_input = gets.chomp user_input.downcase! print "Please Enter your Input" user_input = gets.chomp user_input.downcase

我是ruby的新手!我正在努力学习“!”的用法

我知道!包括,以便在适当位置修改用户的字符串;否则,Ruby将创建一个用户输入的副本并修改它

但在下面的两个程序中,我得到的输出是相同的。为什么

print "Please Enter your Input"
user_input = gets.chomp
user_input.downcase!

print "Please Enter your Input"
user_input = gets.chomp
user_input.downcase
user\u input
值是用户输入的值,小写

print "Please Enter your Input"
user_input = gets.chomp
user_input.downcase
user\u input
值是用户输入的值

差异在于
用户输入的值,而不是打印的内容

user\u input
值是用户输入的值,小写

print "Please Enter your Input"
user_input = gets.chomp
user_input.downcase
user\u input
值是用户输入的值


差异在于
用户输入的值,而不是打印的内容。

两种方法的行为相同,但返回的对象不同

downcase
返回用户输入的修改副本。换句话说,
用户输入保持不变

downcase返回
用户输入
已修改。请注意,这可能更节省内存,因为您不生成用户输入的副本

在这两种情况下,它们都会返回用户输入的停机版本。这就是为什么你有相同的输出

要了解更多关于Ruby中bang方法的信息,请参见此


hth

两种方法的行为相同,但返回的对象不同

downcase
返回用户输入的修改副本。换句话说,
用户输入保持不变

downcase返回
用户输入
已修改。请注意,这可能更节省内存,因为您不生成用户输入的副本

在这两种情况下,它们都会返回用户输入的停机版本。这就是为什么你有相同的输出

要了解更多关于Ruby中bang方法的信息,请参见此

hth

在Ruby中,bang(!)用于通知程序员他们调用的方法是破坏性的。这是Ruby说“嘿!这个方法将改变它被调用的对象!”。
String
数组、
Enumerable`等类中的许多安全方法都具有破坏性的对应项

例如:

my_str = "Hello, World!"
my_str.downcase # => "hello, world!"
my_str # => "Hello, World!"

my_str = "Goodbye, World!"
my_str.downcase! # => "goodbye, world!"
my_str #> "goodbye, world!"
如您所见,虽然这两个方法都返回字符串的小写变量,
downcase实际更改
my_str
永久更改

这是Ruby的一个非常方便的方面,我希望提供更多的语言

我认为还值得一提的是,由于破坏性方法在适当的地方起作用,它们通常比必须返回新对象的安全方法更快、内存效率更高。因此,
my_string.downcase
应该优先于
my_string=my_string。尽可能使用downcase

在Ruby中,使用bang(!)通知程序员他们调用的方法是
破坏性的。这是Ruby说“嘿!这个方法将改变它被调用的对象!”。
String
数组、
Enumerable`等类中的许多安全方法都具有破坏性的对应项

例如:

my_str = "Hello, World!"
my_str.downcase # => "hello, world!"
my_str # => "Hello, World!"

my_str = "Goodbye, World!"
my_str.downcase! # => "goodbye, world!"
my_str #> "goodbye, world!"
如您所见,虽然这两个方法都返回字符串的小写变量,
downcase实际更改
my_str
永久更改

这是Ruby的一个非常方便的方面,我希望提供更多的语言


我认为还值得一提的是,由于破坏性方法在适当的地方起作用,它们通常比必须返回新对象的安全方法更快、内存效率更高。因此,
my_string.downcase应该优先于
my_string=my_string.downcase

在哪里打印字符串?我得到一个(在相同的输入上)。(是的,我知道,我应该更新我的Ruby安装;-))还要注意
真正的意思是“危险”。当对象被修改时,或者当操作有其他不明显的副作用时,使用它。例如,在Rails中,
save
表示“如果保存有问题,则抛出错误”,而
save
仅在出现问题时返回false。您在哪里打印字符串?我(在相同的输入上)得到a。(是的,我知道,我应该更新我的Ruby安装;-))还要注意
真正的意思是“危险”。当对象被修改时,或者当操作有其他不明显的副作用时,使用它。例如,在Rails中,
save
表示“如果保存有问题则抛出错误”,而
save
仅在出现问题时返回false。