Я пошел в this page, чтобы узнать о классах Ruby. Код на этой странице, заключается в следующем:Рубиновые определяющие переменные класса
class Customer
@@no_of_customers=0
def initialize(id, name, addr)
@cust_id=id
@cust_name=name
@cust_addr=addr
end
def display_details()
puts "Customer id #@cust_id"
puts "Customer name #@cust_name"
puts "Customer address #@cust_addr"
end
def total_no_of_customers()
@@no_of_customers += 1
puts "Total number of customers: #@@no_of_customers"
end
end
Я понимаю @@
означает переменную класса, но я не понимаю, как вы можете создать переменную в initialize
метода (конструктор) и использовать его внутри другого метода, как будто это переменная класса. Как это возможно? В чем смысл определения переменных класса, если вы можете просто определить его в конструкторе?
где он определял переменную класса в конструкторе? – yngccc
@yngum '@ cust_id = id'. Я предполагаю, что это не определение переменной класса, но мой вопрос в большей степени заключается в том, как вы можете определить переменную в функции и использовать ее вне этой функции. – Richard
'@ cust_id' - это переменная экземпляра, вы, очевидно, можете использовать переменную экземпляра в любом методе экземпляра. – yngccc