初始化器
init(truncating
init(truncatingIfNeeded:)
通過截斷或sign-extending(如果需要適合此類型)從給定實例的位模式創建一個新實例。
聲明
init<T>(truncatingIfNeeded source: T) where T : BinaryInteger
參數
source
要轉換為此類型的整數。
詳述
當T
(source
的類型)的位寬等於或大於該類型的位寬時,結果是截斷了source
的最低有效位。例如,將 16 位值轉換為 8 位類型時,僅使用 source
的低 8 位。
let p: Int16 = -500
// 'p' has a binary representation of 11111110_00001100
let q = Int8(truncatingIfNeeded: p)
// q == 12
// 'q' has a binary representation of 00001100
當T
的位寬小於該類型的位寬時,結果為sign-extended
來填充剩餘的位。也就是說,如果source
為負數,則結果用 1 填充;否則,結果用零填充。
let u: Int8 = 21
// 'u' has a binary representation of 00010101
let v = Int16(truncatingIfNeeded: u)
// v == 21
// 'v' has a binary representation of 00000000_00010101
let w: Int8 = -21
// 'w' has a binary representation of 11101011
let x = Int16(truncatingIfNeeded: w)
// x == -21
// 'x' has a binary representation of 11111111_11101011
let y = UInt16(truncatingIfNeeded: w)
// y == 65515
// 'y' has a binary representation of 11111111_11101011
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相關用法
- Swift Int init(exactly:)用法及代碼示例
- Swift Int init(clamping:)用法及代碼示例
- Swift Int init(_:radix:)用法及代碼示例
- Swift Int init(_:)用法及代碼示例
- Swift Int init(integerLiteral:)用法及代碼示例
- Swift Int >>=(_:_:)用法及代碼示例
- Swift Int &>>=(_:_:)用法及代碼示例
- Swift Int *=(_:_:)用法及代碼示例
- Swift Int ^(_:_:)用法及代碼示例
- Swift Int &-(_:_:)用法及代碼示例
- Swift Int |(_:_:)用法及代碼示例
- Swift Int &=(_:_:)用法及代碼示例
- Swift Int <<(_:_:)用法及代碼示例
- Swift Int +(_:)用法及代碼示例
- Swift Int >>(_:_:)用法及代碼示例
- Swift Int ..<(_:)用法及代碼示例
- Swift Int /=(_:_:)用法及代碼示例
- Swift Int multipliedFullWidth(by:)用法及代碼示例
- Swift Int -(_:_:)用法及代碼示例
- Swift Int ...(_:_:)用法及代碼示例
- Swift Int &*=(_:_:)用法及代碼示例
- Swift Int &(_:_:)用法及代碼示例
- Swift Int /(_:_:)用法及代碼示例
- Swift Int ...(_:)用法及代碼示例
- Swift Int ..<(_:_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Int init(truncatingIfNeeded:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。