1. ホーム
  2. coffeescript

[解決済み] CoffeeScriptで何かを返さない方法はありますか?

2022-05-14 06:50:42

質問

CoffeeScriptは自動的にスコープ内の最後のアイテムを返すようです。この機能を避けることはできますか?

どのように解決するのですか?

明示的に何も返さないか、関数の末尾にundefinedと評価される式を残しておく必要があります。

fun = ->
    doSomething()
    return

または

fun = ->
    doSomething()
    undefined

これは、ドキュメントが推奨しているもので、内包を使用する場合です。

これらのケースで誤って内包の結果を返さないように注意しましょう。 意味のある戻り値を追加する - を追加してください。 を関数の末尾に追加します。 .


しかし、このようなラッパーを書くことができます。

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

(このとき スプラット演算子 はここで ( ... ))

そして、関数を定義するときにこのように使います。

fun = voidFun ->
    doSomething()
    doSomethingElse()

あるいはこのように

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