swift中文文檔gitbooks地址:https://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/
Swift 提供兩種集合類型來存儲集合,數組和字典。數組是一個同類型的序列化列表集合。字典是一個能夠使用類似於鍵的唯一標識符來獲取值的非序列化集合。在Swift中,數組和字典的鍵和值都必須明確它的類型。這意味這數組和字典不會插入一個錯誤的類型的值,以致於出錯。這也意味着當你在數組和字典中取回數值的時候能夠確定它的類型。Swift
使用確定的集合類型可以保證代碼工作是不會出錯,和讓你在開發階段就能更早的捕獲錯誤。
1、數組
Swift數組是儲存確定的值,這個Objective-C中的NSArray和NSMutableArray類是有區別的。因爲它們是儲存各種的對象,而且並不提供返回任何有關對象的具體信息。在Swift中,無論是確定的聲明,還是隱式的聲明,數組是非常確定它自身是儲存什麼樣的類型,而且,它並不一定要求儲存的是類對象。所以Swift數組是類型安全的,因爲它一直都確定它自身所能包含的值。
-
-
let array1:String[]=["a","b"];
-
-
-
var array2:String[]=["aa","bb"];
-
-
-
var array3=String[]();
-
-
-
var array4=Int[](count:3,repeatedValue:0);
-
-
-
array2.append("cc");
-
-
-
-
println(array2);
-
-
-
-
-
-
-
-
var yuansu1=array2[0];
-
-
println(yuansu1);
-
-
-
-
-
-
-
array2[1...2]=["ee","ff"];
-
println(array2);
-
-
-
-
-
-
-
array2.insert("oo",atIndex:0);
-
println(array2);
-
-
-
-
-
-
-
array2.removeAtIndex(0);
-
println(array2);
-
-
-
-
-
-
-
var lastyuansu=array2.removeLast();
-
-
-
for item in array2
-
{
-
-
-
println(item);
-
-
-
}
2、字典
Swift字典時儲存一個類型的具體的鍵和值,和Objective-C的NSDictionary 和NSMutableDictionary由一定的區別,因爲它們是使用各種的對象來作爲它們的鍵和值,而且並不提供任何有關對象的具體信息。在Swift中,對於一個特定的字典,它所能儲存的鍵和值都是確定的,無論是明確聲明的類型還是隱式推斷的類型。Swift的字典寫法是Dictionary<KeyType,ValueType>,KeyType是你想要儲存的鍵,ValueType是你想要儲存的值。唯一的限制就是KeyType必須是可哈希的(hashable)——就是提供一個形式讓它們自身是獨立識別的。Swift的所有基礎類型(例如字符串(String),整形(Int),雙精度(Double)和布爾(Bool))在默認是可哈希的(hashable),和這些類型都常常用語當作字典的鍵。枚舉成員值不需要協助值(associated
values)(具體描述在 Enumerations)也是因爲它們默認也是可哈希的(hashable)。
-
-
let dict1:Dictionary<String,String>=["Name":"yu","Age":"26"];
-
-
var dict2:Dictionary<String,String>=["Name2":"yu","Age2":"26"];
-
-
var dict3=Dictionary<String,String>();
-
-
dict2["Sex"]="nan";
-
-
-
-
-
-
dict2["Sex"]="n";
-
-
println(dict2);
-
-
-
-
-
-
-
if let oldValue = dict2.updateValue("wang", forKey: "Name2")
-
{
-
-
-
println(dict2);
-
-
}
-
-
-
-
-
-
-
if let value = dict2["Age2"]
-
{
-
println(value);
-
-
} else
-
{
-
println("no exsit")
-
}
-
-
-
dict2["Sex"]=nil;
-
println(dict2);
-
-
-
-
-
-
-
if let removedValue = dict2.removeValueForKey("Age2")
-
{
-
println(dict2);
-
-
} else
-
{
-
println(dict2);
-
}
-
-
-
for(key,value) in dict2
-
{
-
-
println("\(key):\(value)");
-
-
-
}