2013-06-19 7 views
15

भीतर मैं सिर्फ एक सामान्य प्रश्न हैं,अंतर 'और' लुआ

वहाँ लुआ भीतर सिंगल और डबल उद्धरण चिह्न का उपयोग कर कोई अंतर है

उदाहरण:।?

require('test.lua') 
require("test.lua") 

जब मैं प्रोग्राम किया PAWN में, सी की तरह एक भाषा, एकल उद्धरण चिह्नों का उपयोग पात्रों के लिए किया जा सकता है, लेकिन पाठ के तारों के लिए, आपको उनके लिए डबल कोट अंक का उपयोग करना पड़ता था।

और यदि कोई नहीं है अंतर, किसकी सिफारिश की जाने की सिफारिश की जाती है?

इस प्रश्न का सबसे अधिक उत्तर दिया गया है, हालांकि मैं पहले से ही उत्तर देने वाला विषय ढूंढने में विफल रहा हूं।

धन्यवाद।

+0

कोई फर्क नहीं पड़ता। इसके अलावा यदि आप सरणी चर के लिए ''' या ''' का उपयोग करने का निर्णय ले रहे हैं, तो आप केवल डॉट नोटेशन का उपयोग कर सकते हैं। –

+0

आह ठीक है आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद, फिर से कौन सा लोकप्रिय रूप से उपयोग किया जाता है? – Bicentric

+0

बस एकल उद्धरण का उपयोग करें जब आपके पास स्ट्रिंग में युगल कोट्स होते हैं, और सिंगल कोट्स होते हैं जब आपके पास स्ट्रिंग में डबल कोट होते हैं। आप बैकस्लैश कैरेक्टर का उपयोग करके दोनों में भी भाग सकते हैं, इसलिए इससे कोई फर्क नहीं पड़ता कि आप कौन सी चुनते हैं। लोकप्रियता के लिए, यह सिर्फ वरीयता पर क्योंकि यह वास्तव में कोई फर्क नहीं पड़ता। –

उत्तर

19

नहीं। कोई फर्क नहीं पड़ता, सिवाय इसके कि आप उन लोगों के अंदर दूसरे को घेर सकते हैं जिनका आप उपयोग कर रहे हैं।

-- No difference between these 
myStr = "Hi!!" 
myStr = 'Hi!!' 
myStr = [[Hi!!]] -- The 'weird' way to make a string literal IMO... 

-- Double quotes enclosed in single quotes  
myStr = 'My friend said: "Hi!!"' 

-- Single quotes enclosed in double quotes 
myStr = "My friend said: 'Hi!!'" 

-- Single and double quotes enclosed in double brackets 
myStr = [[My friend said: "What's up?"]] 

देखें: Strings in Lua अधिक जानकारी के लिए।

+0

आह ठीक है, फिर आपके उत्तर के लिए धन्यवाद, इसकी बहुत सराहना की गई है। हालांकि, मैं अभी भी जानना चाहता हूं कि कौन सा आम है :) मैं अनुमान लगा रहा हूं कि डबल कोट चिह्न केवल इसलिए है क्योंकि विभिन्न प्रकार की भाषाओं में तार डबल कोट अंक का उपयोग करते हैं। – Bicentric

+0

हाँ, सी, सी ++, सी #, जावा में और कई और भाषाएं डबल कोट्स स्ट्रिंग अक्षर के लिए उपयोग की जाती हैं, और एकल उद्धरण चरित्र अक्षर के लिए उपयोग किए जाते हैं। – AtinSkrita

+2

@ बाइसेन्ट्रिक आप इसके बारे में बहुत कुछ सोच रहे हैं। जो कुछ भी आपकी कल्पना के अनुरूप है उसका उपयोग करें - दूसरे पर कोई पसंदीदा नहीं है। मैं ''' का उपयोग करता हूं क्योंकि जब मैं इसे टाइप करता हूं तो मुझे अतिरिक्त शिफ्ट कुंजी नहीं रखना पड़ता है। – greatwolf

1

आप "लुआ स्ट्रिंग्स" के लिए इंटरनेट खोजकर आसानी से लुआ तारों के बारे में पता लगा सकते हैं।

यहाँ एक परिणाम है: http://www.lua.org/pil/2.4.html

आप अपनी खुद की बोली शैली का चयन करने के रूप में यह कोई फर्क नहीं पड़ता के लिए स्वतंत्र हैं, लेकिन इतना है कि अपने कोड को पढ़ने के लिए अच्छे है आप अनुरूप होना चाहिए।

वरीयता के मामले में, मैं आमतौर पर डबल-कोट्स का उपयोग करता हूं क्योंकि लुआ सी-स्टाइल एस्केप-कोड का उपयोग करता है। कई स्क्रिप्ट भाषाओं (उदाहरण के लिए पर्ल, और कमांड शैल एकल और डबल-उद्धृत तारों के बीच भेद बनाते हैं, और इन अर्ध-मानक प्रथाओं के साथ थोड़ा संगत होना अच्छा लगेगा।

मेरा मतलब है कि जब मुझे एक एकल उद्धृत स्ट्रिंग दिखाई देती है तो मुझे वास्तव में यह सोचना होगा कि मैं कौन सी भाषा पढ़ रहा हूं, और उस स्ट्रिंग में बचने वाले कोड को प्रतिस्थापित किया गया है या नहीं। डबल-उद्धृत तारों के साथ मुझे इसके बारे में सोचना नहीं है, क्योंकि सामान्य नियम के रूप में किसी भी भाषा में सी-स्टाइल एस्केप-कोड को स्ट्रिंग में प्रतिस्थापित करने वाली भाषा डबल-कोट वाली स्ट्रिंग में होती है।

+0

आह आपके उत्तर के लिए भी धन्यवाद :) – Bicentric

+0

पीआईएल जो ऑनलाइन उपलब्ध है अब बहुत पुराना है (ब्रैकेट-डिलीमीटर '[[5.0 से घोंसला' \ [= * \] 'वाक्यविन्यास के साथ बदल दिया गया था) यह आमतौर पर बेहतर होता है मैनुअल का संदर्भ लें: http://www.lua.org/manual/5.2/manual.html#3.1 – dualed

1

लुआ में दोनों के बीच कोई अंतर नहीं है, इसलिए आप जो भी चाहें उसका उपयोग कर सकते हैं। मैं शब्दार्थ उन दोनों के बीच अंतर करने के लिए करते हैं:

  • मैं उपयोगकर्ता के लिए दृश्यमान तार और पाठ के लिए "double quotes" उपयोग करते हैं, मूल रूप से जो कुछ भी उत्पादन पर या फाइलों में
  • मैं तरीकों को पारित करने के लिए विकल्प की तरह तार के लिए 'single quotes' का उपयोग करें और प्रतीत होता है आम तौर पर कोड में, io.stdout:setvbuf('no')