Revision Difference
nil#546494
<upload src="ad25a/8d9e698ef1f965f.jpg" size="23564" name="artworks-2KmvQKGGXQGzpOtT-7CbFLA-t500x500.jpg" /><cat>Dev.Lua</cat>
<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.
<example>
<html>⤶
https://i1.sndcdn.com/artworks-2KmvQKGGXQGzpOtT-7CbFLA-t500x500.jpg⤶
</html>⤶
<output><br/>nil<br/>false<br/>false<br/>true<br/>true<br/>nil<br/>b = bar</output>⤶
<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( "Made by Freline" )
menu:SetTitle( "This is a title" )
local panel = vgui.Create( "DPanel", menu )
panel:Dock( FILL )
panel.Paint = nil
</code>
</example>