In Rust, semicolons are used to denote the end of an expression and the start of a new statement. Typically, semicolons are required in Rust; each statement must end with one. However, there is an exception: if the last expression in a block lacks a trailing semicolon, its value is returned as the block's result. For example, in functions or closures, the last expression may omit the semicolon to serve as the return value.