Swift字典总结

//
//  main.swift
//  Swift字典总结
//
//  Created by Goddog on 15/7/14.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

import Foundation

println("字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典")

//MARK: - 创建字典
var dic:Dictionary<String,String>=["三国演义":"罗贯中","水浒传":"施耐庵","红楼梦":"曹雪芹","西游记":"吴承恩"]
var dic1 = ["魏国":"曹操","蜀国":"刘备","吴国":"孙权"]
println("创建字典方法一:\(dic),创建字典方法二:\(dic1)")
//构造方法创建字典
var gzfa = Dictionary<Int,String>()


//MARK: - 访问字典
var name = dic["三国演义"]
println("根据字典的键得到值:\(name)")

//MARK: - 向字典中添加建值
var myDict : Dictionary<String,String>
myDict = Dictionary<String,String>()
//添加
myDict["孔子"] = "孟子"
println("创建一个字典并添加数据:\(myDict)")
//修改
myDict.updateValue("论语",forKey: "孔子")
println("修改之后是:\(myDict)")
//删除
//myDict.removeValueForKey("孔子")
myDict["孔子"] = nil
println("删除之后是:\(myDict)")

//MARK: - 遍历字典
for (key,value) in dic
{
    println("键是:\(key),值是:\(value)")
}
//或
for t in dic1
{
    println("键是:\(t.0),值是:\(t.1)")
}
//单独访问key
for key in dic.keys
{
    println("key=\(key)")
}
//单独访问value
for value in dic.values
{
    println("value=\(value)")
}
var keys = Array(dic.keys)
var values = Array(dic.values)
println("key集合是:\(keys)")
println("values集合是:\(values)")

//MARK: - 字典类型的赋值和拷贝行为
/*
注意:字典和数组的拷贝是不同的
1.无论何时将一个字典实例赋给一个常量或变量,或者传递给一个函数方法,这个字典会即会在赋值或调用发生时被拷贝。
2.如果字典实例中所储存的键(keys)和/或值(values)是值类型(结构体或枚举),当赋值或调用发生时,它们都会被拷贝。相反,如果键(keys)和/或值(values)是引用类型,被拷贝的将会是引用,而不是被它们引用的类实例或函数
*/

myDict["老子"] = "道德经"
var books = myDict
println("myDict是:\(myDict),books是:\(books)")
myDict.updateValue("道家",forKey: "老子")
println("myDict是:\(myDict),books是:\(books)")


字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典
创建字典方法一:[红楼梦: 曹雪芹,西游记: 吴承恩,三国演义: 罗贯中,水浒传: 施耐庵],创建字典方法二:[吴国: 孙权,魏国: 曹操,蜀国: 刘备]
根据字典的键得到值:Optional("罗贯中")
创建一个字典并添加数据:[孔子: 孟子]
修改之后是:[孔子: 论语]
删除之后是:[:]
键是:红楼梦,值是:曹雪芹
键是:西游记,值是:吴承恩
键是:三国演义,值是:罗贯中
键是:水浒传,值是:施耐庵
键是:吴国,值是:孙权
键是:魏国,值是:曹操
键是:蜀国,值是:刘备
key=红楼梦
key=西游记
key=三国演义
key=水浒传
value=曹雪芹
value=吴承恩
value=罗贯中
value=施耐庵
key集合是:[红楼梦,西游记,三国演义,水浒传]
values集合是:[曹雪芹,吴承恩,罗贯中,施耐庵]
myDict是:[老子: 道德经],books是:[老子: 道德经]
myDict是:[老子: 道家],books是:[老子: 道德经]
Program ended with exit code: 0

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...