IT story

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

hot-time 2020. 7. 22. 07:58
반응형

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


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


명시 적으로 아무것도 반환하지 않거나 함수의 맨 아래에 정의되지 않은 식을 평가하지 않아야합니다.

fun = ->
    doSomething()
    return

또는:

fun = ->
    doSomething()
    undefined

이것이 이해를 사용할 때 의사가 권장하는 것입니다.

이러한 경우 함수 하단에 true 또는 null과 같은 의미있는 반환 값추가하여 실수로 이해 결과를 반환하지 않도록주의하십시오 .


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

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

( 여기서 스 플랫 연산자에 대한 알림 ( ...))

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

fun = voidFun ->
    doSomething()
    doSomethingElse()

또는 이렇게 :

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

예, return함수의 마지막 줄로.

예를 들어

answer = () ->
  42

extrovert = (question) -> 
  answer()

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

커피가 컴파일되는 js를 보려면 http://bit.ly/1enKdRl을 시도하십시오 . (내 예제에는 coffeescript redux를 사용했습니다)


재미 있음

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

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


longRunningFunctionWithNullReturn = ->
  longRunningFunction()
  null

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

참고 URL : https://stackoverflow.com/questions/7391493/is-there-any-way-to-not-return-something-using-coffeescript

반응형