gpt4 book ai didi

ruby - 用于 !在 ruby

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:35 27 4
gpt4 key购买 nike

我是 ruby 新手!我正在努力学习使用“!” .

我知道了!包含在内,以便就地修改用户的字符串;否则,Ruby 将创建 user_input 的副本并修改它。

但在以下情况下,我得到的两个程序的输出相同。为什么?

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 表达“嘿!这个方法将改变它被调用的对象!”的方式。 StringArray、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 - 用于 !在 ruby ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com