Garry's Mod Wiki

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>