루비 셀프

2561 단어
ruby의 키워드self를 사용하면 현재 개체에 액세스할 수 있습니다.

수업

클래스self의 컨텍스트에서 현재 클래스를 나타냅니다.

class Dog
  p self # the Dog class
end


self에 메소드를 정의하면 클래스 메소드가 생성됩니다.

인스턴스 메소드

인스턴스 내에서 self는 인스턴스 자체를 참조합니다.

class Dog
  def bark
    self
  end
end

p Dog.new.bark # an instance of the Dog class


암시적 자아
명시적 수신 개체 없이 메서드를 호출하면 메서드가 암시적으로 self에 대해 호출됩니다. 일반 영어에서 이것은 함수 호출의 왼쪽에 아무것도 없으면 왼쪽이 self임을 의미합니다.

class Person
  attr_reader :first_name, :last_name

  def initialize(first_name, last_name)
    @first_name = first_name
    @last_name = last_name
  end

  def full_name
    "#{first_name} #{last_name}" #implied self. Instance of person
  end
end


최상위 레벨

최상위 레벨에서 self는 주요 루비 객체를 나타냅니다.

p self # the main object


모듈

self가 모듈의 인스턴스 메소드 내에서 사용될 때 모듈이 포함된 클래스의 인스턴스를 참조합니다.

모듈 내부의 인스턴스 메소드 외부에서 self를 볼 때 모듈을 참조합니다.
p 그 자체가 무엇인지 궁금하시다면. obj.inspect와 유사하게 동작하는 커널 메서드입니다. 일부 개체에서 호출해 보세요. :)

좋은 웹페이지 즐겨찾기