min
и max
:
let minValue = UInt8.min
let maxValue = UInt8.max
Значения этих свойств для целого типа верного значения (таких как UInt8
из примера выше) могут быть использованы в выражениях с другими значениями того же типа.
Int
для всех целых чисел общего назначения в Вашем коде, даже если известно, что они будут неотрицательными. Использование целого типа по-умолчанию в повседневных ситуациях означает, что целые константы и переменные будут немедленно переносимы в Вашем коде и будут совпадать с выводимым типом для целых литеральных типов.
Int8
может хранить числа между -128 и 127, тогда как UInt8
константа или переменная может хранить числа от 0 до 255. Число, которое не попадёт в границы указанного типа константы или переменной будет отмечено ошибкой в процессе сборки Вашего кода.
let cannotBeNegative: UInt8 = -1
let tooBig: Int8 = Int8.max + 1
twoThousand
типа UInt16
, тогда как константа one типа UInt8
. Они не могут быть сложены вместе напрямую, потому что они не одного типа. Вместо этого этот пример вызывает UInt16(one)
для создания нового числа типа UInt16
, проинициализированного значением one, и использует это значение заместо оригинала:
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne= twoThousand + UInt16(one)
Так как оба слагаемых теперь имеют тип UInt16
, сложение разрешено. Результирующая константа (twoThousandAndONe)
выводится в тип UInt16
, так как это сумма двух значений этого типа.
SomeType(ofInitialValue)
это дефолтный способ вызвать конструктор типа из Swift и передать в него инициирующее значение. За кулисами UInt16
содержит конструктор, который принимает UInt8
значение, так что это конструктор используется для создания нового значения типа UInt16
из существующего UInt8
. Вы не можете передать здесь однако любой тип: это обязательно должен быть тип, для которого у UInt16
есть конструктор.
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
Здесь значение константы three
используется для создания новой переменной типа Double
, так что оба слагаемых имеют один и тот же тип. Без этого преобразования здесь сложение было бы невозможным.
let pi = 3.14159
let integerPi = Int(pi)
Дробные числа всегда урезаются, когда используются для создания нового целого числа. Это значит, что 4.75 становится 4, а -3.9 становится -3.