古いコードをCoffeescriptに翻訳しようとしています。しかし、文法エラーが発生した後に何もせずにdoWork()を実行すると、Coffeescriptで空のwhileループを書くにはどうしますか?
while (doWork()) {}
"doWork()"の翻訳はありません。
古いコードをCoffeescriptに翻訳しようとしています。しかし、文法エラーが発生した後に何もせずにdoWork()を実行すると、Coffeescriptで空のwhileループを書くにはどうしますか?
while (doWork()) {}
"doWork()"の翻訳はありません。
while doWork() then
はthen
を使ったトリックに
を行う必要があり、それが明示的に(この場合は空の)身体から条件を分離するためのものですので、おそらく標準的なソリューションです。別の方法としては、私はまた、continue while doWork()
ソリューションのよう
(#
はエラーとしてフラグを立てるからの強調表示vimのシンタックスを保つ)
while doWork()
;#
を書くことができますが、私は強く、コメントで述べたexpression while doWork()
の他のフォームに対して助言しますこれは、関数の最後のステートメントであるときには、リストのコンストラクタになりますので、:
_results = [];
while (doWork()) {
_results.push(expression);
}
return _results;
それとも、読みやすくするために、いくつかのバイトを交換して喜んでいる場合、私はdoWorkは() 'になりながら'続けると思いますそれを明瞭に書く方法。 –
'( - >)'をノーオペレーションとして使っています。これは最短のものですから、 '( - >)doWork()'を実行します。 –
@トレヴァー私は、あなたの提案が信じられないほど読みやすく(構文的に)、驚くほど暗く(意味的に)どうか驚いています。私はそれがAaronのコメントなしでどのように動作するかは決して理解できません:)(しかし、それは本当に美しいイディオムであり、私はそれを喜んで回答として投稿します)。 – brandizzi