【问题标题】:swift optional array subscriptsswift 可选数组下标
【发布时间】:2014-07-08 19:58:04
【问题描述】:

简单的游乐场代码如下:

var array :[Int?]
array = [1, 2, 3]
array![1] = 4

从 Playground 收到错误

Playground 执行失败:错误::8:1:错误:'@lvalue $T6' 与 'Int?' 不同 数组![1] = 4

有什么建议吗?

【问题讨论】:

    标签: arrays swift optional


    【解决方案1】:

    您正在定义一个可选 Int 的非可选数组。当您尝试访问它时,您试图强制解开数组本身,这是不必要的。你可以这样做:

    array[1] = 4
    

    非可选 Int 的可选数组如下所示:

    var array: [Int]?
    

    【讨论】:

    • 我们都看到了它的发展方向......不妨把它扔在这里:devforums.apple.com/message/998882#998882
    • 当我定义一个像下面的可选数组时 var array :[Int]?数组 = [1, 2, 3] 数组![1] = 4 我得到了这个 >Playground 执行失败:错误::8:1: 错误:'@lvalue $T6' 与 'Int' 数组不同![1] = 4
    【解决方案2】:

    好的,我自己得到答案

    var array :[Int]?
    array = [1, 2, 3]
    if var tmpArray = array {
        tmpArray[1] = 4
        array = tmpArray
    }
    

    我怎么能这么说,缺点和优点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多