2011-09-11 3 views
3

내가 문자열 원시 형/클래스에 메소드를 추가하려고 어디 수있는 내가 의도적으로이 메소드를 호출 URL 문자열 크롬 콘솔에서커피 스크립트

String::getUrlParams = ->      # line 1 
    false unless (params = @.split('?')[1]) # line 2 
    # ... 

에서 추가 PARAMS params가없는 URL 문자열을 사용하면 false가 반환 될 것으로 예상됩니다.

"http://dns.com/".getUrlParams(); 

하지만 내가

다음
return false unless (params = @.split('?')[1]) # line 2` 

false를 반환하지에 2 호선을 변경하는 경우 라인 2.

통과가는 라인이

어떤 생각에서 기능을 중지 왜 coffeescript가 false로 돌아 오지 않고 첫 번째 버전에서 기능을 중단합니까?

고맙습니다.

답변

7

Coffeescript는 마지막 기능 문장 만 반환합니다. 무언가가 어떤 명령 뒤에 나오면, 함수의 중간에 돌아가고 싶다면 명시 적으로해야한다.

--short thoughts-- 한마디로 - 커피 스크립트 컴파일러는 예측하기, 그 똑똑하지, 당신은 할 수 있습니다 또는 뭔가를 반환 할 수 없습니다 곳. 그리고 지금도 대부분의 컴파일러에 똑같이 적용됩니다. 또한 현명하지 못한 부분은 조기 반환으로 인한 대부분의 실수를 피합니다.

+0

나는 본다. 그것은 그것을 설명합니다. 사실, 나는 질문을 입력 한 후 약 2 분 정도 (의심되는 것 같아) 생각했다. 추측은 밖으로 물건을 입력하는 것이 도움이됩니다. 7 분이 지났을 때 투표 결과에 투표 할 것입니다 - 감사합니다! –

+0

주의 사항 추가주의 사항 주셔서 감사합니다. –

관련 문제