📅  最后修改于: 2023-12-03 14:58:57.457000             🧑  作者: Mango
在 Ruby 中,'!' 不是一个特殊字符,但它常常被用到表示一种强有力的方法调用。以下是关于 Ruby 中的 '!' 的介绍。
在 Ruby 中,大部分带有 '!' 的方法的作用是对原始对象进行直接修改而不是创建一个新的对象。
比如:
upcase!
将字符串全部转换成大写,且会直接作用于原始字符串内,而不是返回一个新的字符串。
reverse!
将字符串反转,且会直接作用于原始字符串内,而不是返回一个新的字符串。
sort!
对一个数组进行原地排序,返回原始数组而不是新数组。
map!
对一个数组进行原地修改,返回原始数组而不是新数组。
以下是 '!' 在 Ruby 中的几个用法示例:
string = " hello "
string.chomp! #=> " hello"
string_a = "hello"
string_b = "world"
string_a.eql?(string_b) #=> false
string = "hello"
string.reverse! #=> "olleh"
numbers = [1, 2, 3, 2, 1]
numbers.uniq! #=> [1, 2, 3]
string = "12345hello67890"
string.gsub!(/\d+/, '') #=> "hello"
'!' 通常被用于对原始对象进行修改,因此可能会导致原始数据的丢失。
如果方法名后面有 '!'(例如 sort!
),则该方法通常会将原始对象进行修改,并返回原始对象,而不是返回一个新的对象。这和没有 '!' 的方法相比,是一种原地修改的行为。
是否使用 '!' 取决于你的应用程序实际需要哪种行为。如果需要在不修改原始对象的情况下创建一个新的对象,那么请使用没有 '!' 的方法。
'!' 表示强有力的方法调用,通常用于对原始对象进行原地修改而不是创建新的对象。对于开发者来说,了解 '!' 的用法,可以让代码更加高效,减少代码冗余。