Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method · added in Ruby 3.2
String#dedup
-string → frozen_string
dedup → frozen_string
string.c
View on GitHub ↗
static VALUE
str_uminus(VALUE str)
{
if (!BARE_STRING_P(str) && !rb_obj_frozen_p(str)) {
str = rb_str_dup(str);
}
return rb_fstring(str);
}
Alias of #-@
Returns a frozen, possibly pre-existing copy of the string.
The returned String will be deduplicated as long as it does not have any instance variables set on it and is not a String subclass.
Note that -string variant is more convenient for defining constants:
Example
FILENAME = -'config/database.yml'
while dedup is better suitable for using the method in chains of calculations:
Example
@url_list.concat(urls.map(&:dedup))
Ruby version changes
-
3.2
-
String#deduphas been added as an alias toString#-@. [Feature #18595]
-