lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


My favourite method is to add to the result a metatable whose __index function returns an empty table with exactly that same metatable attached, which can be the same predefined table for all cases.
Effect is that always an empty table is returned if the indexes are exhausted. In your case the function  may need to check if the index is a number and return the table, else nil.


Am 18.11.19 um 06:42 schrieb Aidar Kamalov:

I have a table generated by luasoap.
function trackNum(tracknum)
    local ns, meth, ent = {
        url = ""http://mysite/api/service.asmx" moz-do-not-send="true">http://mysite/api/service.asmx",
        soapaction = "",
        method = "Track",
        namespace = "",
        entries = {
                tag = "TrackNo", tracknum,
    local Code = ent[1][1][1][1] or "201"
    local Status = if ent[1][1][3][1][17][1] or "Unknown"
    return Code, Status

so, I don't know how many indexes will be in answer (btw, is it possible to address by names? for example ent['Code']) and I want to escape  error attempt to index a nil value (field '?').

What the best way to do it? something like try/except int python?

Aydar A. Kamalov