← Back to Ruby Course | Chapter 3: Strings | Lesson 7 of 7

freeze क्या है

freeze एक object को lock करता है ताकि इसे बदला न जा सके, एक sculpture को glass के पीछे रखने की तरह। बाद में इसे बदलने की कोई कोशिश एक error raise करती है।

In this page:

  1. freeze
Syntax
ruby
CONSTANT = "value".freeze
object.frozen?

freeze

.freeze एक object को immutable बनाता है, इसलिए बाद में इसे modify करने की कोई कोशिश एक FrozenError raise करती है।

Ruby में String literals default से mutable हैं (कुछ languages के उलट), इसलिए freeze explicitly तब इस्तेमाल होता है जब आप guarantee करना चाहें कि एक string कभी नहीं बदलेगी। accidental mutation रोकने के लिए Freezing आमतौर पर constants पर भी apply होता है।

Note: एक file की पहली line की तरह # frozen_string_literal: true इसमें हर string literal को default से frozen बना देता है।

उदाहरण: freeze

markup
name = "Alice".freeze

puts name.frozen?

begin
  name << " Smith"
rescue => e
  puts "Error: #{e.class}"
end
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह मान लेना कि freeze पूरी nested structure immutable बनाता है, जब यह सिर्फ object freeze करता है और इसके contents फिर भी बदल सकते हैं।
  2. एक frozen string पर name << " Smith" try करना, जो FrozenError raise करता है; इसकी बजाय name + " Smith" इस्तेमाल करें।
  3. एक variable की value freeze करना और यह सोचना कि variable reassign नहीं हो सकता, जब name = "Bob" फिर भी काम करता है।
चैप्टर सारांश
  • Strings के पास कई methods हैं, और multiline strings और heredocs लंबे text handle करते हैं।
  • String formatting, gsub, sub, split, और join text transform करते हैं।
  • freeze एक string को modify होने से रोकता है।
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.