변경 :
def initialize(showName)
:name = showName
end
에
def initialize(showName)
@name = showName
end
당신이 할 수있는
:
attr_accessor :name, :tvdbID
몇 가지 예 :
class Dog
def initialize(name)
@name = name
end
def show
puts "I am a Dog named: " + @name
end
def add_last_name(last_name)
@name = @name + " " + last_name
end
end
d = Dog.new "Fred"
d.show
d.add_last_name("Rover")
d.show
--output:--
I am a Dog named: Fred
I am a Dog named: Fred Rover
그래서 인스턴스 변수는 클래스 내에서 자유롭게 액세스 할 수 있습니다. 그러나 클래스 외부에서 위의 예에서는 인스턴스 변수에 액세스 할 수 없습니다 :
class Dog
def initialize(name)
@name = name
end
def name #getter
@name
end
def name=(val) #setter
@name = val
end
end
d = Dog.new "Fred"
puts d.name
--output:--
Fred
그 getter 및 setter는 다음과 같습니다
다음
d = Dog.new "Fred"
puts d.name
--output:--
1.rb:17:in `<main>': undefined method `name' for #<Dog:0x000001010a5b48 @name="Fred"> (NoMethodError)
당신이 클래스 외부에서 인스턴스 변수에 액세스 할 수있는 방법입니다 10 개의 인스턴스 변수라고이 특히 - - 고통을 입력하기 때문에 루비 바로 가기 제공 :
class Dog
def initialize(name, age)
@name = name
@age = age
end
attr_accessor :name, :age
end
d = Dog.new("Fred", 5)
puts d.name
puts d.age
d.age = 6 #calls age=() method
puts d.age
--output:--
Fred
5
6
를하지만에 attr_accessor 라인을 작성하는 관례 수업 시작.
무엇이 질문입니까? (TM) – sawa
질문은 명백합니다. – 7stud