Skip to content

Commit

Permalink
Merge pull request rust-lang#63 from jz0425/master
Browse files Browse the repository at this point in the history
Update variables.md
  • Loading branch information
steveklabnik authored Jun 1, 2017
2 parents fdaa801 + 63a5a10 commit 0fd1eb8
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions src/variables.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# Variables

A _variable_ is a component of a stack frame, either a named function parameter,
A _variable_ is a component of a stack frame. That component can be a named function parameter,
an anonymous [temporary](expressions.html#lvalues-rvalues-and-temporaries), or a named local
variable.

A _local variable_ (or *stack-local* allocation) holds a value directly,
allocated within the stack's memory. The value is a part of the stack frame.

Local variables are immutable unless declared otherwise like: `let mut x = ...`.
Local variables are immutable unless declared otherwise. For example: `let mut x = ...`.

Function parameters are immutable unless declared with `mut`. The `mut` keyword
applies only to the following parameter (so `|mut x, y|` and `fn f(mut x:
applies only to the following parameter. For example: `|mut x, y|` and `fn f(mut x:
Box<i32>, y: Box<i32>)` declare one mutable variable `x` and one immutable
variable `y`).
variable `y`.

Methods that take either `self` or `Box<Self>` can optionally place them in a
mutable variable by prefixing them with `mut` (similar to regular arguments):
mutable variable by prefixing them with `mut` (similar to regular arguments). For example:

```rust
trait Changer: Sized {
Expand All @@ -24,8 +24,8 @@ trait Changer: Sized {
}
```

Local variables are not initialized when allocated; the entire frame worth of
local variables are allocated at once, on frame-entry, in an uninitialized
Local variables are not initialized when allocated. Instead, the entire frame worth of
local variables are allocated, on frame-entry, in an uninitialized
state. Subsequent statements within a function may or may not initialize the
local variables. Local variables can be used only after they have been
initialized; this is enforced by the compiler.

0 comments on commit 0fd1eb8

Please sign in to comment.