【问题标题】:How to store long in a Swift array?如何在 Swift 数组中存储 long?
【发布时间】:2017-04-18 14:51:30
【问题描述】:

我有几个要发送到数组中的用户 ID,但无法找出正确的 Swift 3 语法来创建具有很长整数的数组。我尝试了转换,@ 前缀并使用as AnyObject,但这不起作用。

let idArray = [10211420262370680, 10211420262370680]

错误:整数字面量在存储到 int 时溢出

用这么长的整数创建数组的正确方法是什么?

【问题讨论】:

    标签: ios arrays swift long-integer integer-overflow


    【解决方案1】:

    试试这个:

    let idArray: [UInt64] = [10_211_420_262_370_680, ...]
    

    作为信封计算的背面,每 10 位 为您购买 3 个十进制数字。例如,UInt324_000_000_000 附近达到最大值,以此类推。

    顺便说一句,上面的下划线_just syntax sugar 用于大数字文字;-)

    【讨论】:

      【解决方案2】:

      有符号长的数组:

      let signed64BitIntegerArray: [Int64] =      [-10211420262370680, 10211420262370680]
      

      无符号长的数组:

      let unsigned64BitIntegerArray: [UInt64] =   [ 10211420262370680, 10211420262370680]
      

      【讨论】:

        【解决方案3】:

        如果您需要 C 互操作/FFI,请使用 CLongCUnsignedLong

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-18
          • 2015-04-25
          • 1970-01-01
          • 2020-07-26
          • 1970-01-01
          相关资源
          最近更新 更多