我在Objective-C中做了這個,但是我不能在Swift中做我想做的事情。
我想旋轉任何類型的2維數組。我正在使用泛型,以便我可以使用Strings & Ints或任何其他類型。使用多維數組泛型的多個錯誤
import UIKit
let someArray = [[1,2,3],[7,8,9],[11,93,87]]
print(someArray[0])
func rotateArray<T> (array:[[T]]) ->Array{
var tempArray = [[T]]()
for i in 0..<array.count{
for j in 0..<array.count{
tempArray[j][array.count-i-1] = array[i][j]
}
}
return tempArray
}
someArray.count
let x = rotateArray(someArray)
不過,我得到以下錯誤(有可能是我不知道的其他錯誤),我也看了this question和其他一些人,但不能涉及到它。
reference to generic type 'Array' requires arguments in <..>
Binary Operator '..<' Cannot be applied to two 'Int' operands
- 編輯固定最初兩個錯誤後:
fatal error: Index out of range
有什麼事情,我做錯了什麼?請包括細節,我是一個完整的菜鳥。
謝謝Rob。你究竟如何解決內部數組的問題 - 沒有被實例化?另外爲什麼我們不能使用下標運算符? – Honey
我們在'for j ...'循環中做的第一件事是我們將一個'[T]()'追加到數組中。這就是我們正在實例化內部數組的地方。爲什麼你不能使用下標操作符?數組下標操作符(與字典不同)意味着「用此值替換此索引處的項目」。它不用於追加到數組,只更新它們。 – Rob
你的意思是如果我**之前用'nil's或任何東西填充**數組,*然後*我將能夠使用下標運算符? – Honey