2017-05-31 155 views
0

好的我到目前爲止一直在使用Lua 2天,並且遇到了幾個問題!請幫助我理解!爲什麼在打印「hello」時打印2會導致錯誤?

1:

>print "hello" 
hello 

>print ("hello") 
hello 

>print (2) 
2 

>print 2 
Error!! 

而且我已閱讀文檔和參考手冊,但對於我這樣的初學者,這是很難理解的語言!我仍然在學習教程和一本簡單的書。

你也可以推薦我一個Windows以外的輕量級C IDE,除了Visual Studio,DEVC++,Geany,C-LION,code :: blocks,eclipse,qunicy嗎?

+0

我不明白你的問題。我建議您將腳本寫入文件保存爲例如作爲「MyFile.lua」,然後在命令行中運行同一個目錄下的lua MyFile.lua。看起來你的一些麻煩與氣候解釋者有關。要了解lua,請查看http://troubleshooters.com/codecorn/lua/index.htm。這真的幫助我在當天學習盧阿。 – mode777

+0

看起來像lua不允許函數名稱和左括號之間有任何空格。但爲什麼你需要這個? – Picard

+0

謝謝,但我正在使用Windows。所以我只能使用CMD作爲lua解釋器。 – LittlePcGuy

回答

2

從Lua的參考手冊: 3.4.10 Function Calls

所有參數表達式呼叫之前進行評價。 f {fields}的 調用是f({fields})的語法糖;也就是說,參數列表 是一個新的表。 f'string'(或 f「string」或f [[string]])的調用是f('string')的語法糖;即 參數列表是單個文字字符串。

因此print 2給出了一個錯誤,因爲函數調用沒有語法糖,只有單個數字作爲參數。爲什麼?我不知道。也許是因爲你不可能有任何東西的語法糖:)

只要接受它。

+1

沒有任何語法糖,因爲你需要一個非平凡百分比的「非語法結構」來獲得拼寫錯誤的合理概率,更像是動態類型化的Lua 。在加載文件時,將'x = 2'或'x,2'拼寫爲'x 2'目前會導致錯誤,不僅在錯誤代碼最終運行時出現錯誤。這比需要函數調用的圓括號更糟糕。 (如果一切都有意義,錯別字只是改變意思(這可能是一個錯誤),並沒有「緩衝空間」去「這是無稽之談,你肯定是別的東西!」) – nobody

相關問題