2015-01-26 83 views
1

剛開始使用Swift,我對一些元素感到惱火。首先,大多數標準的東西都是結構而不是對象,這意味着它們是按照我習慣的價值而不是指針傳入的。另一件事是使用可選的元素系統真的很煩人。在Swift中使用數組

如果我想聲明一個數組沒有把任何東西在裏面,我宣佈這樣的:

var theArray : [Int] 

爲了放任何東西,我將宣佈這樣的:

var theArray : [Int]? 

然後添加對象如下:

theArray[someIndex] = someInt 
//or 
theArray.append(someInt) 

但是,我得到一個錯誤。在Java中,我可以剛剛初始化一個長度爲數組的數組,這會給我一個固定大小的數組,其中全爲0。

這個問題總結在一個語句中,是將元素添加到沒有值初始化的Swift數組中。你怎麼做到這一點?

+1

你已經聲明瞭數組,你還沒有初始化它。 @zellb的答案看起來像一個沒有值數組實際初始化的好例子。順便說一句,包括你得到的錯誤對於你的問題總的來說是個好主意 – lascort 2015-01-26 19:04:24

回答

2

爲了初始化爲空數組使用:

var theArray : [Int] = [] 

然後通過使用附加方法添加元素。你現在做的是,你只是在第一種情況下聲明它是非可選的,在第二種情況下聲明它是一個可選變量,類型爲int數組而不初始化它。

1

如果你想要數組包含Int類型,當然有很多方法可以基於隱式或顯式類型推斷來聲明它。這些是包含Int類型

var array1 = [Int]() 
var array2: [Int] = [] 
var array3 = Array<Int>() 
var array4: Array<Int> = [] 

如果你想有一定大小的數組的數組的所有有效的聲明,用值初始化到一定值時,您可以使用,在這個例子中,你會得到一個Array<Int>與5個元素,所有的初始化爲0

var array = Array(count: 5, repeatedValue: Int(0)) 
0

在這裏你去:

var theArray = Array(count:[the length you want], repeatedValue:Int(0)) 

這將複製Java的行爲。