Swift数字类型和文字

示例

Swift的内置数字类型为:

  • 字大小(取决于体系结构)的有符号Int和无符号UInt。

  • 固定大小的有符号整数Int8,Int16,Int32,Int64和无符号整数UInt8,UInt16,UInt32,UInt64。

  • 浮点类型Float32 / Float,Float64 / Double和Float80(仅x86)。

文字

数字文字的类型是根据上下文推断的:

let x = 42    // x默认为Int
let y = 42.0  // y默认为Double

let z: UInt = 42     // z是UInt
let w: Float = -1    // w是浮动的
let q = 100 as Int8  // q是Int8

下划线(_)可用于分隔数字文字中的数字。前导零被忽略。

浮点字面量可以使用有效和指数部分(对于十进制;对于十六进制)指定。«significand» e «exponent»0x «significand» p «exponent»

整数文字语法

let decimal = 10               // 十
let decimal = -1000            // 负一千
let decimal = -1_000           // 相当于-1000
let decimal = 42_42_42         // 相当于424242
let decimal = 0755             // 相当于755,而不是某些其他语言的493
let decimal = 0123456789

let hexadecimal = 0x10         // 相当于16
let hexadecimal = 0x7FFFFFFF
let hexadecimal = 0xBadFace
let hexadecimal = 0x0123_4567_89ab_cdef

let octal = 0o10               // 相当于8
let octal = 0o755              // 相当于493
let octal = -0o0123_4567             

let binary = -0b101010         // 相当于-42
let binary = 0b111_101_101     // 相当于0o755
let binary = 0b1011_1010_1101  // 等效于0xB_A_D

浮点文字语法

let decimal = 0.0
let decimal = -42.0123456789
let decimal = 1_000.234_567_89

let decimal = 4.567e5               // 相当于4.567×10⁵或456_700.0
let decimal = -2E-4                 // 相当于-2×10⁻⁴或-0.0002
let decimal = 1e+0                  // 相当于1×10⁰或1.0

let hexadecimal = 0x1p0             // 相当于1×2⁰或1.0
let hexadecimal = 0x1p-2            // 等于1×2⁻²或0.25
let hexadecimal = 0xFEEDp+3         // 相当于65261×2³或522088.0
let hexadecimal = 0x1234.5P4        // 等效于0x12345或74565.0
let hexadecimal = 0x123.45P8        // 等效于0x12345或74565.0
let hexadecimal = 0x12.345P12       // 等效于0x12345或74565.0
let hexadecimal = 0x1.2345P16       // 等效于0x12345或74565.0
let hexadecimal = 0x0.12345P20      // 等效于0x12345或74565.0