2014-02-13 3 views
2

질문은 제목에 있습니다. 나는 누군가가 이것을 더 일찍 사용하는 것을 보았고 나는 !이 무엇을 위해 사용되었는지 알지 못했다.루아의 느낌표는 무엇을합니까?

local lowestIndex = 0; 
local lowestValue = false; 
for k, v in ipairs(playerElement) do 
    if !lowestValue or v.value < lowestValue then 
     lowestIndex = k; 
     lowestValue = v; 
    end 
end 
+5

구문 오류가있는 것 같습니다. 일부 언어에서는'! '가 논리적 "not"이지만 루아는'not'를 사용합니다. 이 코드는 어디에서 보았습니까? 실제로 실행 되었습니까? 루아 코드가 맞습니까? –

+0

정확합니다. 'lua : test.lua : 2 : 예기치 않은 기호 '!'근처에 나온 것입니다. –

+0

이 응답을 수정하여'! '(C 구문)를'not' 동등한 루아 기호). 그러나 너무 적은 숫자의 문자를 추가하면 질문을 편집 할 수 없다는 요구 덕분에 포기했습니다. – michaelmeyer

답변

6

다른 사람들이 말했듯이, !은 일반적으로 루아에서는 기능이 없으므로 게시 한 코드는 일반적으로 유효하지 않습니다. 그러나 Lua의 파서를 확장하여 사용자 정의 구문을 허용하는 것은 매우 사소한 일이며, 및 ~= 이외에 !var!=과 같은 "더 익숙한"C 스타일 구문을 추가하도록 Lua를 포함하는 프로젝트의 경우에는 전례가 없습니다. 이 작업을 수행하는 하나의 주목할만한 프로젝트는 Garry's Mod이며 다른 작업이있을 것이라고 확신합니다.

물론 정상적인 구문을 사용할 수있을 때 사용자 지정 구문을 사용하거나 처음부터 사용자 지정하는 것이 가능하면 가능한 한 이러한 종류의 혼동을 피하는 것이 가장 좋습니다.

3

구문 오류입니다.

일부 언어, 대부분 C와 그 친척, 논리적 "아니"연산자로 !을 사용하지만, 루아 대신 not 키워드를 사용, 나는조차의 일환으로 (아는 한 지금까지 아무것도 !를 사용하지 않습니다 불평등 연산자이며 ~= (여기서 C는 !=을 사용)을 사용합니다.

모르는 사람이 작성한 루아 코드가있는 것 같습니다.