[RUBY-ON-RAILS] 자기를 사용하십시오. 여부 .. 레일에
RUBY-ON-RAILS자기를 사용하십시오. 여부 .. 레일에
지금 언젠가 루비 코딩 된 적이 있지만 사용할 때 이해가 안 :
def self.METHOD_NAME
end
아니면 그냥 :
def METHOD_NAME
end
어떤 레일 모델에서. "자기는"자바 민간 같이 수정인가? 사용하지 않을 때는 언제 그와를 사용한다? 엄청 고마워.
해결법
-
==============================
1.
def self.method_name end
클래스 메소드를 정의합니다.
def method_name end
인스턴스 메소드를 정의한다.
이것에 꽤 좋은 게시물입니다.
-
==============================
2.무슨 수단의 빠른 설명 :
무슨 수단의 빠른 설명 :
루비에서는 특정 객체의 메소드를 정의 할 수 있습니다 :
a = "hello" def a.informal "hi" end a.informal => "hi"
무엇 당신이 할 때 발생하는 클래스는 String 객체 A는, "고스트"클래스, 일명 메타 클래스, 싱글 톤 클래스 또는 eigenclass로 변경 동급를 얻을 수 있다는 것입니다. 즉, 새로운 클래스의 슈퍼 클래스는 String입니다.
또한, 내부 클래스 정의는, 자기는 그렇게, 클래스가 정의되는으로 설정
class Greeting def self.say_hello "Hello" end #is the same as: def Greeting.informal "hi" end end
어떻게이 일이 클래스 클래스이다 오브젝트 인사말이, 당신이 전화를 그렇게 할 때, 새로운 방법과 새로운 메타 클래스를 얻을 수 있다는 것입니다
Greeting.informal => "hi"
이 루비에서 클래스 메소드 같은 건 없다, 그러나 의미는 비슷하다.
-
==============================
3.어느 하나를 사용하는 경우에 좋은 가이드 :
어느 하나를 사용하는 경우에 좋은 가이드 :
클래스 메소드를 만들 때, 어떤 클래스에 대해 신중하게 생각하거나에 속하는 모듈. 혹시 잡을 경우 자신이 다른 클래스에 혼합 할 수있는 모듈로 클래스에서 클래스 메소드, 인자를 코드를 복제.
-
==============================
4.이러한 맥락에서 - 데프 self.method_name 일종의 자바 정적 방법에 동등한를한다 :
이러한 맥락에서 - 데프 self.method_name 일종의 자바 정적 방법에 동등한를한다 :
루비:
class HexHelper def self.to_h(num) sprintf("%x", num) end end use: HexHelper.to_h(12345)
자바:
public class HexHelper { public static String toHex(int num) { return new PrintfFormat("%x").sprintf(num); } } use: HexHelper.toHex(12345)
-
==============================
5.자기는 항상 현재 객체이다
자기는 항상 현재 객체이다
여기에 자신을 볼 때
데프 self.method_name 종료
당신은 정말 자기가 현재의 Class 객체이며, 인스턴스 메서드에 있지 않습니다.
-
==============================
6.자기는 자바에서 this 키워드 같다. 그것은 현재 개체 인스턴스에 대한 참조입니다. 모델 코드가 수행하는 현재 오브젝트에 대한 조작 경우에, 당신은 아마 self.method_name의 지정이없는 기능을 필요 했어.
자기는 자바에서 this 키워드 같다. 그것은 현재 개체 인스턴스에 대한 참조입니다. 모델 코드가 수행하는 현재 오브젝트에 대한 조작 경우에, 당신은 아마 self.method_name의 지정이없는 기능을 필요 했어.
from https://stackoverflow.com/questions/386115/to-use-self-or-not-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 및 백본 협력 (0) | 2020.02.23 |
---|---|
[RUBY-ON-RAILS] JSON 대신 YAML을 사용하여 액티브의 직렬화 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 참고 EOFError : 파일의 마지막 순으로 문제에 도달 : HTTP (0) | 2020.02.22 |
[RUBY-ON-RAILS] 레일 LINK_TO 루비 의해 매개 변수를 전달 (0) | 2020.02.22 |
[RUBY-ON-RAILS] 대한없이 SimpleForm (비 모델 양식) (0) | 2020.02.22 |