Skip to content

Latest commit

 

History

History
51 lines (39 loc) · 1.19 KB

blocks_and_statements.md

File metadata and controls

51 lines (39 loc) · 1.19 KB

Blocks and statements

Table of contents

TODO

This is a skeletal design, added to support the overview. It should not be treated as accepted by the core team; rather, it is a placeholder until we have more time to examine this detail. Please feel welcome to rewrite and update as appropriate.

Overview

The body or definition of a function is provided by a block of code containing statements, much like in C or C++. The body of a function is also a new, nested scope inside the function's scope (meaning that parameter names are available). Statements within a block are terminated by a semicolon. Each statement can, among other things, be an expression. Here is a trivial example of a function definition using a block of statements:

fn Foo() {
  Bar();
  Baz();
}

Statements can also themselves be a block of statements, which provide scopes and nesting:

fn Foo() {
  Bar();
  {
    Baz();
  }
}