Types/bool: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Rewrite to prevent a very bad potential mistake)
(Updated styling of prototype doc migration note)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div class="stub"><p>'''The prototype docs have moved to a new website with an improved format.''' This documentation page can now be found here: [https://lua-api.factorio.com/latest/types/bool.html https://lua-api.factorio.com/latest/types/bool.html]


A variable type which can have one of two values: true or false. Care must be observed with the concepts of "truthy" and "falsey": different types will act like true in a boolean context, and nil will act like false, but they are not equal. Especially significant: "true" and "false" are truthy strings, and are not true and false.
</p><p>This wiki page is no longer updated and '''will be removed at some point in the future''', so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback [https://forums.factorio.com/viewforum.php?f=233 on the forums].</p></div>


Used in Boolean algebra, which is the foundation of digital logic and processing.


Wikipedia has a comprehensive article on [http://en.wikipedia.org/wiki/Boolean Booleans]
 
A variable type which can have one of two values: <code>true</code> or <code>false</code>. Wikipedia has a comprehensive article on [[wikipedia:Boolean|Booleans]].
 
== Advanced ==
Booleans used in prototypes can also be be defined by other variable types which are then coerced to boolean values by the game. This type coercion differs from the [https://www.lua.org/manual/5.2/manual.html#2.1 standard Lua truthy/falsy] coercion.
 
It is recommended to only use <code>true</code> and <code>false</code>, not the options listed below.
 
{| class="wikitable"
|-
! Value !! Factorio prototype loading<br>type coercion to boolean !! Lua<br>type coercion to boolean
|-
| <code>""</code> || false || true
|-
| <code>"true"</code> || true || true
|-
| <code>"false"</code> || false || true
|-
| <code>"0"</code> || false || true
|-
| <code>"<any number besides 0 (inside a string)>"</code> || true || true
|-
| <code>"<some random string>"</code> || not coerced, treated as a string || true
|-
| <code>0</code> || false || true
|-
| <code><any number besides 0></code> || true || true
|-
|}

Latest revision as of 10:42, 21 September 2023

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/types/bool.html

This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.


A variable type which can have one of two values: true or false. Wikipedia has a comprehensive article on Booleans.

Advanced

Booleans used in prototypes can also be be defined by other variable types which are then coerced to boolean values by the game. This type coercion differs from the standard Lua truthy/falsy coercion.

It is recommended to only use true and false, not the options listed below.

Value  Factorio prototype loading
type coercion to boolean 
Lua
type coercion to boolean
"" false true
"true" true true
"false" false true
"0" false true
"<any number besides 0 (inside a string)>" true true
"<some random string>" not coerced, treated as a string true
0 false true
<any number besides 0> true true