2014-02-14 1 views
0

입력 문자열의 줄 수를 반환하는 독립 실행 형 메서드 인 count_lines를 작성하려고했습니다.연습용 독립 실행 형 메서드를 이해하려고합니다.

s = %W/This 
is 
a 
test./ 
print "Number of lines: ", count_lines(s), "\n" 
# Output: 
Number of lines: 4 

내가 루비 상당히 새로운 오전 나는 경우 실제 출력의 의사 여부를 알아 내려고 노력하고 있어요 :이 테스트 코드를 실행하면 가 표시되는 출력을 생성한다. 도와주세요 !! 내가 count_lines을 가정 할

+0

당신이 당신의 질문은 무엇을 명확히 할 수처럼 작동? –

+0

이것이 의사 코드인지 실제 루비 코드인지 파악하려고합니다. main (Object : NoMethodError)에 대해 정의되지 않은 'count_line'을 얻었습니다. – user3308300

+0

실제 루비 코드이지만'count_lines' 메소드의 정의가 빠져 있습니다. – Satya

답변

0

은 배열에있는 요소의 수를 계산하는 방법, 당신은 루비는이에 대한 Array Documentation를 찾아 제공하는 여러 가지 방법의 사용 요소의 수를 셀 수, 및 %W 루비의 하나입니다 당신은 문자열의 배열을 만들 수있게 미묘한 예 :

arr = %W{a b c} 
arr # => ["a", "b", "c"] 

그것은 분리 문자

arr = %W.a b c. 
arr # => ["a", "b", "c"] 

.를 사용하여 구분 등으로 거의 모든 특수 문자를한다 그래서 질문 /에서 당신의 코드에서 구분 기호가 사용되므로 s는 다음과 같이 평가합니다 :

s = %W/This 
is 
a 
test./ 
s # => ["This", "is", "a", "test."] 

을 위의 이유를 아래의 설명은

def count_lines(arr) 
    arr.size 
end 

s = %W/This 
is 
a 
test./ 
print "Number of lines: ", count_lines(s), "\n" 
# >> Number of lines: 4