Ruby 使用!红宝石色
我是ruby的新手!我正在努力学习“!”的用法 我知道!包括,以便在适当位置修改用户的字符串;否则,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
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可能的话,code>应该优先于my_string=my_string.downcase
。在哪里打印字符串?我得到一个(在相同的输入上)。(是的,我知道,我应该更新我的Ruby安装;-))还要注意代码>真正的意思是“危险”。当对象被修改时,或者当操作有其他不明显的副作用时,使用它。例如,在Rails中,save
表示“如果保存有问题,则抛出错误”,而save
仅在出现问题时返回false。您在哪里打印字符串?我(在相同的输入上)得到a。(是的,我知道,我应该更新我的Ruby安装;-))还要注意代码>真正的意思是“危险”。当对象被修改时,或者当操作有其他不明显的副作用时,使用它。例如,在Rails中,save
表示“如果保存有问题则抛出错误”,而save
仅在出现问题时返回false。