2012-07-26 1 views
1

다음은 테이블을 취하여 테이블에서 가장 큰 숫자 값의 색인을 반환하는 짧은 프로그램입니다.루아 최대 숫자 프로그램

제 질문은 - 누군가 제게 5 행의 for 루프에서 "단어, 카운트"를 설명 할 수 있습니까? 프로그램은 작동하지만 for 루프에서 count라는 단어가 어떻게 수행되는지 이해하지 못합니다.

numbers = {10, 5, 1} 

function largest(t) 
    local maxcount = 0 
    local maxindex 
    for word, count in pairs(t) do 
    if count > maxcount then 
     maxcount = count 
     maxindex = word 
    end 
    end 
    return maxindex, maxcount 
end 

print(largest(numbers)) 
+2

변수 이름'word'와'count'의 선택은 책이나 튜토리얼의 샘플 코드 인 경우 여기서는별로 좋지 않습니다. 훨씬 더 좋은 이름은'index' (아니면'i' 또는'idx')와'value' 였을 것입니다. 비 - 숫자 값을 가지고'largest()'가 호출되면 코드는 또한 "재미있는"일을 할 것입니다. 'print (가장 큰 { "a", 3, {13}, function() end})'를 시도하십시오. – RBerteig

답변

3

다음 코드를 실행하면 좀 더 명확하게해야합니다

tbl = { a = "one", b = "two", c = "two and half" } 
for key, val in pairs(tbl) do print(key, val) end 

당신이 for 루프에서 pairs를 실행, 그것은에있는 각각의 키/값 쌍에 대해 한 번 doend 사이의 코드를 실행 표; for x, y in은 루프 내의 코드에 대한 키와 값의 이름을 설정합니다. 은 iterator의 가장 보편적 인 예입니다.

+0

정말 고마워요! 정말 도움이되었습니다! –