본문 바로가기
개발/Ruby

[Ruby] self란?

by 자몬다 2019. 6. 18.

현재 또는 기본객체를 가리킨다. 
클래스 안에서 쓰면 현재 클래스를 말하고,
메서드 안에서 쓰면 현재의 메서드를 사용하고 있는 객체를 말함.

 

특히 클래스 메서드를 표현할 때 많이 쓰인다.

형태
def self.find -> 클래스 메서드 / def find -> 인스턴스 메서드
class User def self.find가 있다고 하면 클래스명.메서드명(User.find)로 호출이 가능함.
하지만 self가 없는 인스턴스 메서드는 u = User.new(유저 인스턴스 생성) 후에 u.find가능.
반대로 클래스 함수를 인스턴스 객체에서 호출하려고 하면 NoMethodError남. User.find만 가능.

그렇다면 인스턴스 메소드는 어떨때 사용하는가? 특정 인스턴스에 의존적인 때에 사용. 
ex) get/set처럼 instance attr과 관련된 함수

728x90

'개발 > Ruby' 카테고리의 다른 글

[Ruby] 함수를 동적으로 실행하기  (0) 2019.06.18
[Ruby] 인스턴스 변수  (0) 2019.06.18
[Ruby] 생성자(Constructor)  (0) 2019.06.18
[Ruby] self란?  (0) 2019.06.18
[Ruby] symbol과 string의 차이점  (0) 2019.06.18
call by value vs call by reference  (0) 2019.01.14

댓글0