다음 라인은 1.8.6에서 루비 1.8.7에서 잘 작동합니다. 내가 사용할 수있는 대안 1.8.6Ruby 1.8.6 배열의 값 인스턴스 카운트
x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3
숫자가 1.8.6의 Array에서 메서드가 아니기 때문에이 오류가 발생합니다. 이 버전에도 비슷한 방법이 있습니까?
일반적인 팁으로다음 라인은 1.8.6에서 루비 1.8.7에서 잘 작동합니다. 내가 사용할 수있는 대안 1.8.6Ruby 1.8.6 배열의 값 인스턴스 카운트
x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3
숫자가 1.8.6의 Array에서 메서드가 아니기 때문에이 오류가 발생합니다. 이 버전에도 비슷한 방법이 있습니까?
일반적인 팁으로 는 다음 1_8 지점의 루비 1.8.7, 1.8.8 (즉, 팁의 새로운 기능을 많이 구현하려고 정말 멋진 backports
library by Marc-André Lafortune,이 Subversion 저장소에서), 1.9.1 및 1.9.2 표준 라이브러리뿐만 아니라 ActiveSupport의 일부 선택 메소드를 순수한 교차 1.8-1.9 호환 루비에서 사용할 수 있습니다. 그냥
require 'backports'
을 할 경우
그래서, C로 떨어 뜨리거나 파괴하지 않고 루비는 가능한 한 1.9.2에 가까이로 루비 1.8.6, 1.8.7 또는 1.9.1을 켜집니다 하위 호환성.
면책 조항 : 오래된 버전의 Ruby를 사용하지 않을 것이므로 실제로 사용하지 않았습니다.
count = x.select {|e| e == 3}.size
누구나 기억에 남을만한 것이 있다면'find_all'은'select'의 별칭입니다. 아니면'select_'가'find_all'의 별명입니다. 어쨌든 여기서 모두 잘 작동합니다. – Telemachus
Groovy에서 select와 findAll을 혼동스럽게 사용했습니다. 그래서, 하나 이상의 동적 언어를 사용한다면, 하나에 충실하려고 노력하십시오. – Geo
FYI, 이제 특정 백 포트 (이 경우'require 'backports/1.8.7/enumerable/카운트 ") –