bool is Move's primitive type for boolean true and false values


Literals for bool are either true or false.



bool supports three logical operations:

SyntaxDescriptionEquivalent Expression


short-circuiting logical and

p && q is equivalent to if (p) q else false


short-circuiting logical or

p || q is equivalent to if (p) true else q


logical negation

!p is equivalent to if (p) false else true

Control Flow

bool values are used in several of Move's control-flow constructs:

  • if (bool) { ... }

  • while (bool) { .. }

  • assert!(bool, u64)


As with the other scalar values built-in to the language, boolean values are implicitly copyable, meaning they can be copied without an explicit instruction such as copy.

Last updated