티스토리 뷰

제목 그대로....
랭킹 데이터를 받아와서 그것을 split 하는 작업을 하고 있는데 발견한 문제입니다.
애초에 컴파일할 때 에러를 뱉어주는데, 육안으로는 절대 찾을 수가 없는 버그입니다. (이 사실을 알고 있지 않다면)
에러 메세지도 이상합니다. 

main.lua:60: '<name>' expected near 'in'

in 근처에 문제가 있다고 합니다. 왜 이런 에러 메세지를 뿜어내는지도 잘 모르겠네요. 눈에 보이는 문법상으로는 문제가 없거든요.


아래는 문제의 코드 입니다.
for in pairs 내부에 for in pairs가 존재하고 있습니다.

data = string.gsub(data, "<br>", "\n")

local t = string.split( data, "\n")

local count = 1

for i, v in pairs(t) do

if count > 10 then break end

count = count + 1

lineAnalysis( v )

print (v)

local str = string.split( v, " " )

print (str)


for j, strr, in pairs(str) do

print (strr)

end


end



해결 방법으로는 내부에서 for in pairs 부분을 밖으로 빼 주는 것입니다.
그리고 아래의 내용은 에러를 수정한 소스 입니다.

local function lineAnalysis( line )

local t = string.split( line, " " )

for i, v in pairs(t) do

print (v)

end

end


local function parseData( data )


data = string.gsub(data, "<br>", "\n")

local t = string.split( data, "\n")

local count = 1

for i, v in pairs(t) do

if count > 10 then break end

count = count + 1

lineAnalysis( v )

end

end

사실 함수를 쪼갠 것 밖에 없습니다.
왜 이렇게 만든 것인지는 모르겠으나.... 한 곳에 헷갈리기 쉬운 것을 겹쳐서 만들지 않도록 미연에 방지한 것이 아닌가 싶습니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday