Local, Global, Instance और Class Variables
In this page:
local_var = value
$global_var = value
@instance_var = value
@@class_var = value
Local, Global, Instance, और Class Variables
Ruby naming convention से variable scope अलग करता है: local_var अपने block/method के लिए local है, $global_var हर जगह accessible है, @instance_var एक specific object से belong करता है, और @@class_var एक class के सारे instances में shared है।
यह prefix-based naming Ruby को ज़्यादातर दूसरी languages की तुलना में unique बनाती है, जो इसकी बजाय separate declaration keywords इस्तेमाल करती हैं। Global variables practice में rarely इस्तेमाल होते हैं क्योंकि ये code के बारे में reason करना मुश्किल बनाते हैं।
उदाहरण: Local, Global, Instance, and Class Variables
$global_count = 0
class Counter
@@total_counters = 0
def initialize
@count = 0
@@total_counters += 1
$global_count += 1
end
end
Counter.new
Counter.new
puts "Total counters created: #{Counter.class_variable_get(:@@total_counters)}"
puts "Global count: #{$global_count}"
Login to try C/C++/Java/PHP code in the editor
- एक method के अंदर एक local variable इस्तेमाल करना जो इसके बाहर defined था, जो
NameErrorraise करता है क्योंकि methods outer locals नहीं देखते। @@countclass variables इस्तेमाल करना और यह देखकर surprised होना कि subclasses इन्हें share करती हैं।- एक instance में एक uninitialised
@countपढ़ना, जो एक error की बजायnilदेता है।
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: