博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)
阅读量:4118 次
发布时间:2019-05-25

本文共 1758 字,大约阅读时间需要 5 分钟。

      Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.
如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的.
      注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化.
     

1. 数组(array)

参考:  

2. Set

参考:  

3. 字典(dictionary)

    
语法:
完整写法是 Dictionary<Key, Value>,简短写法是[Key: Value].(尽管这两种写法一样,官方还是建议使用简写的方法)
       
//
创建一个空的字典
       
var
someDict = [
Int
:
String
]()
       
//
如果类型可以根据上下文推断出来
,
可以直接使用
[:]
创建一个空的字典
        someDict[
5
] =
"
"
        someDict = [:]
       
       
//
字典字面量创建
       
        someDict = [
5
:
"
"
,
2
:
"
"
,
1
:
"
"
]
       
       
println
(
"
\
(
someDict
)"
)
       
       
//
如果
dictionary
key
value
的数据类型都一样
,
那么可以简写成
       
var
dict = [
1
:
"m"
,
2
:
"i"
,
3
:
"i"
,
4
:
"s"
]
       
       
//
数量
       
println
(
"
\
(
dict.
count
)"
)
       
       
//
是否为空
       
println
(
"
\
(
dict.
isEmpty
)"
)
       
       
//
下面写法
,
如果
key
存在就修改字典原来的值
,
如果不存在就添加新的元素
.
        dict[
5
] =
"U"
       
       
//
和上面方法一样
,
如果存在就修改旧的值
,
如果不存在就添加一个新值
,
和上面方法不一样的是
,
该方法会在你更新以后返回旧的值
,
这样你就可以判断是否更新成功
.
该方法返回的是一个
optional
.
因为如果不存在该
key
会返回
nil
       
let
oldValue:
String
? = dict.
updateValue
(
"u"
, forKey:
5
)
       
println
(
"
\
(
oldValue
)"
)
       
       
//
可以通过将
key
的值设为
nil
来删除一个值
        dict[
5
] =
nil
       
       
//
这个方法返回删除掉的值
,
如果不存在返回
nil.
所以返回值也是
optional
.
       
let
removedValue = dict.
removeValueForKey
(
5
)
       
println
(
"
\
(
removedValue
)"
)
       
       
       
//
遍历字典
       
//
可以使用
for-in
循环遍历字典
.
每个元素都以
(key, value)
元组的形式返回
.
可以临时的将元组的组成拆解成变量或常量
.
       
for
(key, value)
in
dict {
           
println
(
"
\
(
key
):
\
(
value
)"
)
        }
       
       
//
也可以只取出字典的
key
或者
value
       
for
key
in
dict.
keys
{
           
println
(
"
\
(
key
)"
)
        }
       
for
value
in
dict.
values
{
           
println
(
"
\
(
value
)"
)
        }
       
       
       
//
还可以将字典的全部
key
或者全部
value
取出来
       
let
dictKeys = dict.
keys
       
let
dictValues = dict.
values
       
       
//
因为字典是无序的
,
但可以使用全局函数
sorted
对其
key
或者
value
排序
       
for
sortedVaule
in
sorted
(dict.
values
) {
           
println
(
"
\
(
sortedVaule
)"
)
        }
       
       
println
(
"
\
(
dict
)"
)

转载地址:http://jvnpi.baihongyu.com/

你可能感兴趣的文章
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day12 集合
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
Day_15JavaSE 异常
查看>>
异常 Java学习Day_15
查看>>
JavaSE_day_03 方法
查看>>
day-03JavaSE_循环
查看>>
Mysql初始化的命令
查看>>
day_21_0817_Mysql
查看>>
day-22 mysql_SQL 结构化查询语言
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
HTML&CSS进阶
查看>>
Servlet进阶和JSP基础
查看>>