## Operator: &*=

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

### Declarations

func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`
func &*=(_: inout Self, rhs: Self)

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`