2013-06-19 136 views
15

我只是有一個普遍的問題差異「和」在Lua

有沒有用在Lua單引號和雙引號任何區別

例:?

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

當我編程在PAWN中,一種類似於C的語言,單引號可以用於字符,但不是文本字符串,您必須使用雙引號。

如果沒有差異,建議使用哪一個?

這個問題最有可能已經回答了,但是我沒有找到已經回答的話題。

謝謝。

+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

是的,在C,C++,C#,Java和更多語言中,雙引號用於字符串文字,單引號用於字符文字。 – AtinSkrita

+2

@Bicentric你對它的想法太多了。只要使用一個適合你的想法 - 沒有比其他人更喜歡的。我傾向於使用''',因爲我輸入時不需要額外的換檔鍵。 – greatwolf

1

通過在互聯網上搜索「lua字符串」,您可以輕鬆找到關於Lua字符串的足夠信息。

這裏是一個結果:http://www.lua.org/pil/2.4.html

你可以自由選擇自己的報價風格,因爲它沒有什麼區別,但你應該是一致的,這樣你的代碼是更好的閱讀。

作爲一個偏好問題,我通常會使用雙引號,因爲Lua使用C風格的轉義碼。許多腳本語言(例如Perl)和命令shell do在單引號和雙引號字符串之間作了區分,並且與這些準標準實踐略微一致會很好。

我的意思是,當我看到一個單引號的字符串時,我必須真正思考我在讀什麼語言,以及是否在該字符串中替換了轉義碼。使用雙引號字符串我不必考慮它,因爲作爲一般規則,在字符串中替換C風格轉義碼的任何語言都會在雙引號字符串中執行此操作。

+0

啊謝謝你的回答:) – Bicentric

+0

在線上可用的PIL現在已經過時了(括號分隔符[[''從5.0替換爲'[[*]'語法),通常更好請參閱手冊:http://www.lua.org/manual/5.2/manual.html#3.1 – dualed

1

Lua中兩者沒有區別,所以你可以使用你喜歡的任何一個。我傾向於語義來區分它們:

  • 我用"double quotes"對用戶可見的字符串和文本,基本上無論在輸出或文件
  • 我用'single quotes'對於期權類的字符串傳遞到方法,並出現一般在代碼中,如io.stdout:setvbuf('no')