Вы можете использовать присваивание "или", чтобы упростить инициализацию глобальной переменной, а затем объединить строку с результатом. Рассмотрим:
function ProcessClientMessage(msg)
msg_global_ = (msg_global_ or "")..msg
print(msg_global_) -- Just for debug purposes so we can print each step
end
do
ProcessClientMessage("thisispart1msg")
ProcessClientMessage("now part two is being received")
ProcessClientMessage("Part 3")
end
Переменная msg_global_
содержит строящуюся строку. Если он еще не был добавлен, он будет равен нулю. В этом случае or ""
будет выполнено и по умолчанию строка будет пустой.
Затем мы просто добавим строку msg
.
Вывод будет выглядеть так:
thisispart1msg
thisispart1msgnow part two is being received
thisispart1msgnow part two is being receivedPart 3
Когда вы на самом деле обрабатываете сообщение, просто установите глобальную переменную равной nil, и у вас снова получится go.