2014-11-29 5 views
0

나는이 코드에서 1..self가 무엇을 의미 하는지를 파악할 수 없다. 더 구체적으로이 범위에서 자기가 무엇을 반환하는지 알 수 없다. (I 1은 ... (10)는 예를 들어 도움을이 루비 코드에서 1..self의 의미는 무엇입니까?

class Fixnum 
    def palindrome_below i 
    (1...self).select{|f| f.to_s(i) == f.to_s(i).reverse} 
    end 
end 

감사를 무엇을 의미하는지 알고있다.

+3

인쇄'self' ... 질문 답변. –

답변

1

palindrome_below인스턴스 메서드Fixnum입니다. 인스턴스 메서드는 클래스의 인스턴스 인 에서 호출 할 수있는 함수입니다 (클래스 메서드와 달리 클래스 자체에서 호출 됨). selfFixnum 인스턴스 자체 지칭 (및 i 메소드 호출에 전달되는 인자를 의미) 상기 코드를 주어

Fixnum의 인스턴스는 palindrome_below 방법에 대한 액세스를 가질 것이다.

14.palindrome_below(5) 
#=> [1, 2, 3, 4, 6, 12] # `self` refers to the Fixnum `14` 

따라서, 아래의 출력은 상술 한 예와 동일하다 :

(1...14).select{|f| f.to_s(5) == f.to_s(5).reverse} 
#=> [1, 2, 3, 4, 6, 12] 
0

x...y이 간격 (x, y]Range를 작성합니다. 당신의 맥락에서, selfFixnum의 인스턴스를 참조한다. .

한 기본 기계 단어로 표현 될 수있는 모든 정수는 다음 Fixnum의 인스턴스 간단한 예입니다 :

class Fixnum 
    def double 
    self * 2 
    end 
end 

# self is `2` 
2.double # => 4 

# self is `8` 
8.double # => 16 
관련 문제