Garry's Mod Wiki

no value

no value is a type in Lua representing no data. While this mostly appears the same as nil from the Lua state, C functions will consider this distinct. This difference can be displayed from Lua with the type function which, unlike vanilla Lua's type function, will return "no value" when given no data.

Examples of the difference:

print(type()) print(type(nil))

Returns:
no value
nil

In vanilla Lua 5.1-5.3, calling type() will result in the error "bad argument #1 to 'type' (value expected)" instead of returning "no value", making this property unique to GLua.

Functions that return nothing technically return no value, making return and return nil unique statements.

Example of this difference:

local function a() end -- Same as a local function b() return end -- Difference from a and b local function c() return nil end print(type(a())) print(type(b())) print(type(c()))

Returns:
no value
no value
nil

Lua variables cannot hold no value and instead will default to nil.

Example of this behaviour:

local function a() end local d = a() print(type(d))

Returns:
nil

no value will be coerced to nil in value comparisons.

Example of this behaviour:

local function a() end print(a() == nil) print(not a())

Returns:
true
true

Page Links


Special Pages


Wikis

?

Render Time: 24ms

Session 0
DB GetPage 3
Generate Html 1
SaveChanges 9
Render Body 0
Render Sidebar 6