Возврат переменной как ноль - PullRequest
1 голос
/ 04 февраля 2012

Я смущен этой ошибкой. Я пишу сценарий lua для mocp для отображения информации в conky. Когда я играю музыкальные файлы в "/ media / Stuff / old-music", все работает нормально, но я получаю сообщение об ошибке при воспроизведении музыкальных файлов в "/ home / tony / Music". Ни один из каталогов жестко не закодирован в моем сценарии. Ошибка говорит, что переменная возвращается как ноль. Я проверяю, и музыкальный файл имеет необходимую информацию. Почему я получаю эту ошибку?

ошибка ..

Conky: llua_do_call: сбой выполнения функции conky_main: /home/tony/.conky/lua-test/albumart.lua:68: попытка объединить глобальный «альбом» (нулевое значение)

код ...

....
totaltime,totaltimesecs,song,artist,album,albumart=newsong(update_num)
....
function newsong()
    local f = io.popen("mocp -Q %album")
    album= f:read("*a")
    f:close()
    album=string.gsub(album,"[\n]","")
    local f = io.popen("mocp -Q %artist")
    artist= f:read("*a")
    f:close()
    artist=string.gsub(artist,"[\n]","")
    local f = io.popen("mocp -Q %song")
    song= f:read("*a")
    f:close()
    song=string.gsub(song,"[\n]","")
    local f = io.popen("mocp -Q %tt")
    totaltime= f:read("*a")
    f:close()
    totaltime=string.gsub(totaltime,"[\n]","")
    local f = io.popen("mocp -Q %ts")
    totaltimesecs= f:read("*a")
    f:close()
    totaltime=string.gsub(totaltime,"[\n]","")
return totaltime,totaltimesecs,song,artist,album,albumart

1 Ответ

1 голос
/ 04 февраля 2012

Код, который вы написали, кажется, не связан с действительным кодом ошибки.Код ошибки конкретно описывает эту проблему:

.../albumart.lua:68: attempt to concatenate global 'album' (a nil value)

Это означает, что вы пытаетесь объединить переменную album с помощью оператора сцепления .., и ее значение равно nil.1007 * Код, который вы написали, предполагает, что это не должно иметь место (даже если вы захотите попробовать сделать все переменные в функции local).Пожалуйста, посмотрите на строку 68 в вашем файле, чтобы найти проблему.

...