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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...