如何从雨燕2.0​​得到一个子阵 [英] How to get a subArray from Swift 2.0

查看:135
本文介绍了如何从雨燕2.0​​得到一个子阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图寻找合适的方式来获得斯威夫特子数组,但我在这里失去了一些东西。这code不起作用,因为 rowArray.append(行)抛出一个错误状态。


  

无法转换类型的值'ArraySlice<&诠释GT;'到指定的类型
  [INT]


我无法弄清楚如何获得[INT]出主数组或ArraySlice&LT转换,诠释>为[INT]。我猜我失去了一些东西简单,但似乎无法找到从文档的答案。

  VAR rowArray = [[INT]]()VAR具有rangeStart = 0
让rangeLength = mapWidth对于VAR指数= 0;指数< mapHeight; ++指数{
    具有rangeStart = tileIDs.count - ((索引+ 1)* mapWidth)    让行:[INT] = tileIDs [具有rangeStart ...具有rangeStart + rangeLength]
    rowArray.append(行)
}
rowArray.append(行)


解决方案

转换 ArraySlice<诠释> [INT] 阵列()

 让行:[INT] =阵列(tileIDs [具有rangeStart ...具有rangeStart + rangeLength])

I keep trying to search for the proper way to get a sub array in Swift but I am missing something here. This code doesn't work because rowArray.append(row) throws an error that states.

Cannot convert value of type 'ArraySlice<Int>' to specified type '[Int]'

I can't figure out how to get an [Int] out of the main array or to convert ArraySlice<Int> to [Int]. I am guessing I am missing something simple but can't seem to find the answer from the docs.

var rowArray = [[Int]]()

var rangeStart = 0
let rangeLength = mapWidth

for var index = 0; index < mapHeight; ++index{
    rangeStart = tileIDs.count - ((index + 1) * mapWidth )

    let row : [Int] = tileIDs[rangeStart...rangeStart+rangeLength]
    rowArray.append(row)
}
rowArray.append(row)

解决方案

Convert ArraySlice<Int> to [Int] with Array():

let row : [Int] = Array(tileIDs[rangeStart...rangeStart+rangeLength])

这篇关于如何从雨燕2.0​​得到一个子阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆