Revision Difference
nil#553927
<title>Nil</title>⤶
<title>nil</title>⤶
<cat>Dev.Lua</cat>
`nil` is Lua's representation of empty data. Unset variables and non-existent table keys will be nil. This will be treated as false in if-statement contexts, but is not equal to false.
See also <page>no value</page>
<example>
<code>
print( nil )
print( nil == 0 )
print( nil == 1 )
print( nil == nil )
print( !nil ) -- because nil can be treated like a false boolean in some cases, "not nil" will equal true
local myEmptyVariable -- a variable with nothing in it (a 'nil' value)
print( myEmptyVariable )
local myTable = { a = "foo", b = "bar" }
myTable["a"] = nil -- setting a value in a table to nil effectively erases it from the table
PrintTable( myTable )
</code>
<output>
```
nil
false
false
true
true
nil
b = bar
```
</output>
</example>
# Application in VGUI
You can use nil to make some VGUI element transparent.
<example>
<code>
local menu = vgui.Create( "DFrame" )
menu:SetSize( 300, 200 )
menu:Center()
menu:MakePopup()
menu:SetTitle( "This is a title" )
local panel = vgui.Create( "DPanel", menu )
panel:Dock( FILL )
panel.Paint = nil
</code>
</example>