Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Array#freeze
() -> self
freeze → self
array.c
View on GitHub ↗
VALUE
rb_ary_freeze(VALUE ary)
{
RUBY_ASSERT(RB_TYPE_P(ary, T_ARRAY));
if (OBJ_FROZEN(ary)) return ary;
if (!ARY_EMBED_P(ary) && !ARY_SHARED_P(ary) && !ARY_SHARED_ROOT_P(ary)) {
ary_shrink_capa(ary);
}
return rb_obj_freeze(ary);
}
Freezes self (if not already frozen); returns self:
Example
a = [] a.frozen? # => false a.freeze a.frozen? # => true
No further changes may be made to self; raises FrozenError if a change is attempted.
Related: Kernel#frozen?.