Difference between revisions of "Variant"

(Document Variant properly)
(Clarified restrictions for usage of tables as Variant)
 
(6 intermediate revisions by 6 users not shown)
Line 2: Line 2:
  
 
== Types ==
 
== Types ==
A [[Variant]] can be a flat [[table]], a [[boolean]], a [[string]], a [[number]] or LÖVE [[userdata]].  
+
A [[Variant]] can be a [[table]], a [[boolean]], a [[string]], a [[number]] or LÖVE [[Object]]s.
  
== Note ==
+
== Notes ==
Foreign userdata (Lua's files, LuaSocket, ENet, ...), functions, and nested [[table|tables]] are not supported.
+
* Foreign userdata (Lua's files, LuaSocket, ENet, ...), functions and <code>nil</code> are not supported.
 +
 
 +
* There are various restrictions on using tables for Variant:
 +
** Values within a table are also subject to the Variant rules (i.e. must only contain Variant types).
 +
** Tables will lose their metatables when used as a Variant.
 +
** Prior to [[11.0]] nested tables are not officially supported.
 +
** Nested tables cannot have cyclical references
  
 
== See Also ==
 
== See Also ==
 
* [[parent::love]]
 
* [[parent::love]]
 
[[Category:Types]]
 
[[Category:Types]]
{{#set:Description=The types supported by [[love.thread]] and [[love.event]]}}
+
{{#set:Description=The types supported by [[love.thread]] and [[love.event]].}}
 
{{#set:Since=000}}
 
{{#set:Since=000}}
  
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|Variant}}
 
{{i18n|Variant}}

Latest revision as of 21:59, 22 June 2024

The Variant type is not a real lua type, but instead indicates what lua values LÖVE can store internally. It is used in love.thread and love.event. Indeed, as it is a "virtual" type, it has no specific representation in lua, and no methods.

Types

A Variant can be a table, a boolean, a string, a number or LÖVE Objects.

Notes

  • Foreign userdata (Lua's files, LuaSocket, ENet, ...), functions and nil are not supported.
  • There are various restrictions on using tables for Variant:
    • Values within a table are also subject to the Variant rules (i.e. must only contain Variant types).
    • Tables will lose their metatables when used as a Variant.
    • Prior to 11.0 nested tables are not officially supported.
    • Nested tables cannot have cyclical references

See Also


Other Languages