[coffeescript] CoffeeScript를 사용하여 무언가를 반환하지 않는 방법이 있습니까?

CoffeeScript가 자동으로 범위의 마지막 항목을 반환하는 것 같습니다. 이 기능을 피할 수 있습니까?



답변

명시 적으로 아무것도 반환하지 않거나 함수 하단에 undefined로 평가되는 표현식을 남겨 두어야합니다.

fun = ->
    doSomething()
    return

또는:

fun = ->
    doSomething()
    undefined

이것은 이해력을 사용할 때 문서가 권장하는 것입니다.

이러한 경우 함수 하단에 의미있는 반환 값 ( 예 : true 또는 null) 추가하여 실수로 이해 결과를 반환하지 않도록주의 하세요 .


그러나 다음과 같이 래퍼를 작성할 수 있습니다.

voidFun = (fun) ->
    ->
        fun(arguments...)
        return

( 여기에 표시 연산자 ( ...))

함수를 정의 할 때 다음과 같이 사용하십시오.

fun = voidFun ->
    doSomething()
    doSomethingElse()

또는 다음과 같이 :

fun = voidFun(->
    doSomething()
    doSomethingElse()
)


답변

예, return함수의 마지막 줄은 a입니다.

예를 들면

answer = () ->
  42

extrovert = (question) ->
  answer()

introvert = (question) ->
  x = answer()
  # contemplate about the answer x
  return 

커피가 컴파일되는 js가 무엇인지 확인하려면 http://bit.ly/1enKdRl을 시도하십시오 . (예를 들어 coffeescript redux를 사용했습니다)


답변

재미있는 것 (ctional)

suppressed = _.compose Function.prototype, -> 'do your stuff'

Function.prototype그 자체는 항상 아무것도 반환하지 않는 함수입니다. compose를 사용하여 반환 값을이 블랙홀로 파이프 할 수 있으며 구성된 함수는 아무것도 반환하지 않습니다.


답변

longRunningFunctionWithNullReturn = ->
  longRunningFunction()
  null


답변

CoffeeScript의 함수는 항상 무언가를 반환해야합니다 null. C에서는 void반환 유형이 있습니다.
->, 빈 함수는로 컴파일 (function() {})되므로 아무것도 반환하지 않는 유일한 함수입니다.


답변