간단한 Ruby 예제에서 irb에서는 발생하지 않는 오류가 발생합니다.Ruby의 NoMethodError에 대해 혼동을 느낀 경우
name = "Joe"
def say_hi
"\"Hi there!\" said #{self}"
end
response = name.say_hi
puts response
이 코드는 "안녕하세요!" 조는 말했다.
irb에서 완벽하게 작동합니다.
say_hi.rb:8:in `<main>': private method `say_hi' called for "Joe":String (NoMethodError)
이런 일이 발생하는 이유에 대해 어떤 제안 : 내가 파일에 동일한 코드를 넣고 파일을 실행하려고 할 때 그러나, 나는이 오류가?
답이 다소 차이가 있지만 궁극적 인 목적은 무엇입니까? 'String'에 메소드 추가하기? 문자열의 해당 인스턴스에? 문자열과 비슷하지만 'Person'과 같이 다른 새로운 유형 중 ... 또는 ...? –
나의 목적은'String'에 메소드를 추가하는 것이 었습니다. 그래도 답장을 보내 주신 모든 분들께 감사드립니다.제 목적에도 불구하고, 나는 행동의 구별을 정말로 알고 싶었습니다. –