lua-users home
lua-l archive

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

On Saturday, January 31, 2015, Bertrand Mansion <> wrote:
In Lua programs, I often see code like the following:

  if host.devices and host.devices.bridge and host.devices.bridge.friendlyName then

In Php, I have seen this:

  if (isset($host['devices']['bridge']['friendlyName']))

In Python, I have seen this:

    if host['devices']['bridge']['friendlyName']:
  except KeyError:

Are there other ways in Lua to check for a key existence ?

Another way is to use a vararg function:

local function pindex(tbl, key, ...) 
    tbl = tbl[key]
    If (...) then
        If type(tbl) == "table" then
            return pindex(tbl, ...)
            return nil, tbl, key
         return true, tbl

local success, value, failed_at = pindex(my_table, "foo", "bar", "baz")

(iPhone + Gmail is not awesome as a code editor. Ymmv. Also, others may have a faster way)