Lua for Conky에서 새로 고치기 전에 3 섹션 (간격) 지연으로 표시 할 상위 프로세스 목록을 제공하는 함수를 작성했습니다. 이를 위해서는 다음 새로 고침 전에 다음 간격마다 새로 고침 데이터를 저장하고 표시해야합니다.함수 내 전역 테이블 정의
모든 아래의 코드와 잘 작동하지만 난 t2
, t3
및 t4
conky_top_control()
의 기능 블록 내 글로벌 테이블 t1
를 정의 할 수없는 의아해입니다. 외관상으로는 함수 코드 블록 안에 테이블 생성을 유지하려고했습니다. 필자는 테이블 앞에 "로컬"정의가없는 목록을 나열하려고했습니다. 그리고 올바른 사용법이라면 테이블 선언에 환경 선언 _G
을 사용하는 올바른 구문을 찾을 수 없습니다.
그래서 질문은 다음과 같습니다. 함수 내에서 전역으로 테이블을 정의하는 방법은 무엇입니까? 특히 테이블 t1
, 아래에 정의 된 t2
, t3
및 t4
과 관련된 테이블입니까?
function conky_timer(interval)
return tonumber(conky_parse("${updates}") % interval+1)
end
t1,t2,t3,t4={},{},{},{}
function conky_top_control()
if conky_timer(3)==1 then
for i=1,5 do
t1[i]=conky_parse('${top name '..i..'}')
t2[i]=conky_parse('${top pid '..i..'}')
t3[i]=conky_parse('${top cpu '..i..'}')
t4[i]=conky_parse('${top mem '..i..'}')
end
end
return conky_parse(t1[1]..'${goto 129}'..t2[1]..'${goto 174}'..t3[1]..'${goto 219}'..t4[1]..'\n'..t1[2]..'${goto 129}'..t2[2]..'${goto 174}'..t3[2]..'${goto 219}'..t4[2]..'\n'..t1[3]..'${goto 129}'..t2[3]..'${goto 174}'..t3[3]..'${goto 219}'..t4[3]..'\n'..t1[4]..'${goto 129}'..t2[4]..'${goto 174}'..t3[4]..'${goto 219}'..t4[4]..'\n'..t1[5]..'${goto 129}'..t2[5]..'${goto 174}'..t3[5]..'${goto 219}'..t4[5])
end
모든 루아 코드는 함수로 컴파일되어 모든 전역 변수가 "함수 내에서"설정됩니다 ... 이것은 여러분이 문제에 대한 잘못된 질문에 도달했다는 것을 알 수있는 지식을 제공하기위한 것입니다. –