```
operator &*= {
associativity right
precedence
assignment
}
```

### Declarations

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking multiplication assignment operator (`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking multiplication assignment operator (`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

`&*=`

) silently discards
any overflow that occurs during the operation. In the following example,
the product of `10`

and `50`

is greater than the maximum representable
`Int8`

value, so the result is the overflowed value:

```
var x: Int8 = 10
x &*= 5
// x == 50
var y: Int8 = 10
y &*= 50
// y == -12 (after overflow)
```

**Parameters:**
**lhs:** The first value to multiply.
**rhs:** The second value to multiply.

#### Declaration

`func &*=(lhs: inout Self, rhs: Self)`

#### Declared In

`FixedWidthInteger`

Multiplies two values and stores the result in the left-hand-side variable, discarding any overflow.

The masking multiplication assignment operator (

`&*=`

) silently discards any overflow that occurs during the operation. In the following example, the product of`10`

and`50`

is greater than the maximum representable`Int8`

value, so the result is the overflowed value:Parameters:lhs:The first value to multiply.rhs:The second value to multiply.## Declaration

`func &*=(lhs: inout Self, rhs: Self)`

## Declared In

`FixedWidthInteger`