如何将 long 存储在 Swift 数组中?
How to store long in a Swift array?
我有几个用户 ID 想发送到一个数组中,但无法找出正确的 Swift3 语法来创建一个非常长的整数数组。我试过转换,@
前缀和使用 as AnyObject
,但那没有用。
let idArray = [10211420262370680, 10211420262370680]
Error: integer literal overflows when stored into int
创建具有如此长整数的数组的正确方法是什么?
试试这个:
let idArray: [UInt64] = [10_211_420_262_370_680, ...]
作为粗略计算,每 10 位 可以买到 3 个小数位。例如,UInt32
在 4_000_000_000
左右达到最大值,依此类推。
顺便说一句,上面的下划线 _
是 just syntax sugar 表示大数字文字 ;-)
有符号长数组:
let signed64BitIntegerArray: [Int64] = [-10211420262370680, 10211420262370680]
无符号长数组:
let unsigned64BitIntegerArray: [UInt64] = [ 10211420262370680, 10211420262370680]
如果需要 C interop/FFI,请使用 CLong
or CUnsignedLong
。
我有几个用户 ID 想发送到一个数组中,但无法找出正确的 Swift3 语法来创建一个非常长的整数数组。我试过转换,@
前缀和使用 as AnyObject
,但那没有用。
let idArray = [10211420262370680, 10211420262370680]
Error: integer literal overflows when stored into int
创建具有如此长整数的数组的正确方法是什么?
试试这个:
let idArray: [UInt64] = [10_211_420_262_370_680, ...]
作为粗略计算,每 10 位 可以买到 3 个小数位。例如,UInt32
在 4_000_000_000
左右达到最大值,依此类推。
顺便说一句,上面的下划线 _
是 just syntax sugar 表示大数字文字 ;-)
有符号长数组:
let signed64BitIntegerArray: [Int64] = [-10211420262370680, 10211420262370680]
无符号长数组:
let unsigned64BitIntegerArray: [UInt64] = [ 10211420262370680, 10211420262370680]
如果需要 C interop/FFI,请使用 CLong
or CUnsignedLong
。