【问题标题】:Playground wrong output操场错误输出
【发布时间】:2014-07-26 08:51:05
【问题描述】:

我想知道这是游乐场的错误还是应该像这样工作:

var types = ["0", "1", "2"]      // ["0","1","2"]
    types += "3"                 // ["0","1","2","3"]
    types += ["4", "5"]          // ["0","1","2","3","4","5"]
    types[3..5] = ["34"]         // ["34"]

在我看来,最后一行 types 应该包含 ["0","1","2","34","5"],但是 Playground 给出不同的输出 - 写在右边。

我认为在右侧我们只能看到最后编辑的内容,但在第 2 行和第 3 行我们可以看到整个类型数组。

在助理编辑中我得到[0] "34",而我认为应该是[3] "34" 和其他数组。

【问题讨论】:

  • 我猜它显示了 LHS 的结果。在您的最后一行中,它将是types[3..5],即(分配后)["34"]。它也与您使用助理编辑获得的[0] "34"一致。

标签: arrays swift swift-playground


【解决方案1】:

types[3..<5] = ["34"] 行之后只看到["34"] 的原因是赋值运算符= 返回已分配的值。

其他行显示整个数组,因为+= 运算符返回赋值结果。

【讨论】:

    【解决方案2】:

    var 指的是可变内容,并且您正在重新为其分配值。

    types[] - index 处的新值,意味着它不应该是连接的。

    例如:

    var types = ["0", "1", "2"]
    types += "5"
    types += ["4", "5"]
    types[3..5] = ["34"] // Here considering the index of 3..5 (3 & 4) as one index - Assigning a single value  and replaced with the value
    types
    

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多