Category:no value

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
Code gs (Talk | contribs)
(Created page with "no value is a type in Lua representing no data. While this mostly appears the same as {{Type|nil}} from the Lua state, C functions will consider this distinct. This difference...")

Latest revision as of 03:37, 11 December 2019

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

This category currently contains no pages or media.

Personal tools
Navigation