Arithmetic

protocol Arithmetic

Declares methods backing binary arithmetic operators--such as +, - and *--and their mutating counterparts.

It provides a suitable basis for arithmetic on scalars such as integers and floating point numbers.

Both mutating and non-mutating operations are declared in the protocol, however only the mutating ones are required, as default implementations of the non-mutating ones are provided by a protocol extension.

The Magnitude associated type is able to hold the absolute value of any possible value of Self. Concrete types do not have to provide a typealias for it, as it can be inferred from the magnitude property. This property can be useful in operations that are simpler to implement in terms of unsigned values, for example, printing a value of an integer, which is just printing a '-' character in front of an absolute value.

Please note that for ordinary work, the magnitude property should not be preferred to the abs(_) function, whose return value is of the same type as its argument.

Inheritance Equatable, ExpressibleByIntegerLiteral View Protocol Hierarchy →
Associated Types
Magnitude : Equatable, ExpressibleByIntegerLiteral
IntegerLiteralType

A type that represents an integer literal.

The standard library integer and floating-point types are all valid types for IntegerLiteralType.

Import import Swift

Initializers

init(integerLiteral:)

Creates an instance initialized to the specified integer value.

Do not call this initializer directly. Instead, initialize a variable or constant using an integer literal. For example:

let x = 23

In this example, the assignment to the x constant calls this integer literal initializer behind the scenes.

value: The value to create.

Declaration

init(integerLiteral value: Self.IntegerLiteralType)

Declared In

ExpressibleByIntegerLiteral

Instance Variables

var magnitude: Self.Magnitude Required

Declaration

var magnitude: Self.Magnitude { get }

Instance Methods

func ==(_:rhs:) Required

Returns a Boolean value indicating whether two values are equal.

Equality is the inverse of inequality. For any values a and b, a == b implies that a != b is false.

Parameters: lhs: A value to compare. rhs: Another value to compare.

Declaration

func ==(lhs: Self, rhs: Self) -> Bool

Declared In

Equatable
mutating func add(_:) Required

Declaration

mutating func add(_ rhs: Self)
func adding(_:)

Declaration

func adding(_ rhs: Self) -> Self
mutating func divide(by:) Required

Declaration

mutating func divide(by rhs: Self)
func divided(by:)

Declaration

func divided(by rhs: Self) -> Self
func multiplied(by:)

Declaration

func multiplied(by rhs: Self) -> Self
mutating func multiply(by:) Required

Declaration

mutating func multiply(by rhs: Self)
mutating func subtract(_:) Required

Declaration

mutating func subtract(_ rhs: Self)
func subtracting(_:)

Declaration

func subtracting(_ rhs: Self) -> Self

Default Implementations

init()

Declaration

init()
init(integerLiteral:)

Create an instance initialized to value.

Declaration

init(integerLiteral value: Self)

Declared In

ExpressibleByIntegerLiteral
func adding(_:)

Declaration

func adding(_ rhs: Self) -> Self
func divided(by:)

Declaration

func divided(by rhs: Self) -> Self
func multiplied(by:)

Declaration

func multiplied(by rhs: Self) -> Self
func subtracting(_:)

Declaration

func subtracting(_ rhs: Self) -> Self