2011-09-11 21 views
7

मैं कुछ पुराने कोड को कॉफ़ीस्क्रिप्ट में अनुवाद करने की कोशिश कर रहा हूं। लेकिन इसके लिए कोई प्रत्यक्ष अनुवाद नहीं है:कॉफ़ीस्क्रिप्ट में लूप के दौरान आप खाली कैसे लिखते हैं?

while (doWork()) {} 

"जबकि doWork()" इसके बाद कुछ भी नहीं सिंटैक्स त्रुटि में परिणाम देता है।

उत्तर

17
while doWork() then 

चाल

+14

या यदि आप पठनीयता के लिए कुछ बाइट्स व्यापार करने के लिए तैयार हैं, मुझे लगता है कि 'जारी रखने के लिए, जबकि doWork()' होगा इसे लिखने का सबसे स्पष्ट तरीका। –

+0

मैं '(->)' को नो-ऑप के रूप में उपयोग करता हूं, क्योंकि यह सबसे छोटा मुझे मिला है, इसलिए मैं doWork() 'करते समय '(->) करता हूं। –

+0

@Trevor मुझे आश्चर्य है कि आपका सुझाव अविश्वसनीय रूप से पठनीय (वाक्य रचनात्मक रूप से) और आश्चर्यजनक रूप से अस्पष्ट (अर्थात्) है। मैं कभी नहीं समझूंगा कि यह हारून टिप्पणी के बिना कैसे काम करता है :) (लेकिन यह वास्तव में एक सुंदर मुहावरे है और मैं खुशी से इसे उत्तर के रूप में पोस्ट करूंगा)। – brandizzi

2

का उपयोग कर then शायद विहित समाधान के बाद से यह स्पष्ट रूप से (इस मामले में खाली) शरीर से हालत को अलग करने के लिए है है चाहिए। वैकल्पिक रूप से आप

while doWork() 
    ;# 

लिख सकते हैं

मैं भी continue while doWork() समाधान की तरह (# एक त्रुटि के रूप में यह पर चिह्नित करने से प्रकाश डाला vim वाक्य रचना रहता है), लेकिन मैं दृढ़ता से टिप्पणी में उल्लेख किया expression while doWork() के किसी अन्य रूप के खिलाफ सलाह के बाद से जब यह एक समारोह के अंतिम बयान यह एक सूची निर्माता बन जाएगा है:

_results = []; 
while (doWork()) { 
    _results.push(expression); 
} 
return _results; 
संबंधित मुद्दे