Types
- Unary → operates on a single target (
- !
)
- Binary → operates on two targets (
+ - * /
)
- Ternary → operates on three targets (
a ? b : c
)
Assignment =
- does not itself return a value (prevents accidents when
==
was wanted)
- a data type cannot be changed once set
// assign a variable
var a = 1
// assign a constant
let b = a
// assign multiple -> c = 4, d = 5.0
let (c, d) = (4, 5.0)
// assign a tuple -> e.0 = 6, e.1 = 7, e.2 = 8
let e = (6, 7, 8)
Arithmetic
- swift does NOT implicitly convert values when types are mixed
- values may not overflow by default (use
&
to force overflow)
+ addition
- subtraction
* multiplication
/ division
Math Functions
// -> 36.55
let absolute = abs(-36.55)
// -> 2
(4.0).squareRoot()
// -> 10
max(5, 10)
// -> -10
min(-5, -10)
// -> 3.14159…
print(Double.pi)
Modulus Operator %
- operator that tells the remainder left after division
- only works with Ints and negatives
// modulus % -> -1
let remainderUnits = -9 % 4
Modulus Function
- works with Ints, Doubles, Floats, and negatives
// modulus function -> 1.8
let remainder = 5.0.truncatingRemainder(dividingBy: 3.2)
Rounding
- requires a Double to work
let testNumber = -36.55
var roundNumber: Double
// -> -37.0
roundNumber = round(testNumber)
// -> -37.0
roundNumber = floor(testNumber)
// -> -36.0
roundNumber = ceil(testNumber)
// -> -36.0
roundNumber = trunc(testNumber)
// rounding to specific decimal places -> -36.5
let doubleStr = String(format: "%.1f", testNumber)
Shift Operations <<
or >>
- shift binary number decimal digits to form a new binary number
- use only for binary numbers (ie. 00001011)