मैं इस समय रूबी और आरओआर सीख रहा हूं, और मैं इस पर आया:रूबी में "एक्स इन वाई के लिए" का क्या मतलब है?
<% for post in @posts %>
Rails guide में। मुझे समझ में आया कि रूबी में ऐसा करने का बेवकूफ तरीका है:
<% @posts.each do |post| %>
यदि कोई अंतर है तो यह क्या है? और यदि कोई फर्क नहीं पड़ता है तो क्या रेल लोगों के लिए उचित रूबी मुहावरे को धक्का देना बेहतर नहीं होगा (इसके बजाय, जो मुझे अधिक पाइथनिक दिखता है)?
संपादित करें: मुझे अभी इस बारे में दो विरोधाभासी स्पष्टीकरण मिले हैं: Tutorials Point का कहना है कि वे एक हैं "एक लूप स्थानीय चर के लिए एक नया दायरा नहीं बनाता है", जबकि CS.Auckland.ac.NZ कहते हैं for
है बराबर .each
के लिए सिर्फ वाक्य रचनात्मक चीनी।
संपादित 2: प्रश्न में for ... in
app/views/posts
द्वारा app/views/posts
में उत्पन्न index.html.erb
के लिए script/generate scaffold
था। मैंने एक त्वरित जांच की है और अब .each
वाक्यविन्यास उत्पन्न करता है। मुझे लगता है कि गाइड का हिस्सा रेल विकास के पहले चरण में लिखा गया था जब मचान for ... in
उत्पन्न हुआ था।
संपादित 3: अब मैं पुष्टि कर सकता हूं कि for x in y
रेल 2.2.2 में प्रयोग किया गया था, लेकिन 2.3.8 से यह y.each do |x|
का उपयोग कर रहा है। बस तुम इतना जानते हो।
धन्यवाद! ठीक वही जो मेरे द्वारा खोजा जा रहा था। यह मुझे वापस मेरे मूल बिंदु पर ले जाता है, यही कारण है कि रेल टीम (या कम से कम जो भी प्रारंभ करने वाली मार्गदर्शिका लिखती है) 'के लिए ... वाक्यविन्यास' के साथ जाती है? – Skilldrick
ऐसे बहुत सारे लोग हैं जो पहले रूबी सीखने के बिना रेल सीखते हैं। मुझे लगता है कि मार्गदर्शिका एक ऐसी शैली में लिखी गई है जिसका उद्देश्य अन्य भाषाओं से आने वाले लोगों से परिचित होना है। – sepp2k
उन दोनों के बीच एक संबंधित अंतर जो कि उस उदाहरण से स्पष्ट नहीं है: 'a = []; एक्स के लिए [1,2,3,4]; एक << proc {x} अंत; नक्शा (&: कॉल) '' 4,4,4,4] 'देता है जबकि 'प्रत्येक' के बराबर' 1,2,3,4] 'प्रदान करेगा क्योंकि प्रत्येक 'एक नया' x' बाध्यकारी पेश करता है प्रत्येक पुनरावृत्ति के साथ। – Chuck