Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.
如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的.
注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化.
1. 数组(array)@H_502_17@
参考:
Swift 集合类型(Collection Type) 之 数组(array)@H_502_17@
2. Set@H_502_17@
3. 字典(dictionary)@H_502_17@
var
someDict = [
Int
:
String
]()
如果类型可以根据上下文推断出来
,
可以直接使用
[:]
创建一个空的字典
someDict[
5
] =
"
我
"
someDict = [:]
字典字面量创建
someDict = [
5
:
"
,
2
:
爱
1
:
你
"
]
println
(
"
\
(
someDict
)"
)
如果
dictionary
的
key
和
value
的数据类型都一样
那么可以简写成
var
dict = [
"m"
,27)">"i"
,216)">3
:
4
:
"s"
]
数量
println
(
(
dict.
count
是否为空
isEmpty
下面写法
如果
存在就修改字典原来的值
如果不存在就添加新的元素
.
dict[
"U"
和上面方法一样
如果存在就修改旧的值
如果不存在就添加一个新值
和上面方法不一样的是
该方法会在你更新以后返回旧的值
这样你就可以判断是否更新成功
.
该方法返回的是一个
optional
值
因为如果不存在该
会返回
nil
let
oldValue:
String
? = dict.
updateValue
(
"u"
,forKey:
5
)
(
oldValue
可以通过将
的值设为
nil
来删除一个值
dict[
5
] =
nil
这个方法返回删除掉的值
如果不存在返回
nil.
所以返回值也是
.
let
removedValue = dict.
removeValueForKey
(
(
removedValue
)"
)
遍历字典
//
可以使用
for-in
循环遍历字典
每个元素都以
(key,value)
元组的形式返回
可以临时的将元组的组成拆解成变量或常量
@H_400_404@ for
(key,value)
in
dict {
(
key
):
\
(
value
)"
)
}
也可以只取出字典的
或者
value
for
key
in
dict.
keys
{
)"
)
}
for
value
in
dict.
values
{
)"
)
}
还可以将字典的全部
或者全部
取出来
@H_400_404@ let
dictKeys = dict.
keys
let
dictValues = dict.
values
因为字典是无序的
但可以使用全局函数
sorted
对其
排序
@H_400_404@ for
sortedVaule
in
sorted
(dict.
values
) {
(
sortedVaule
)"
)
}
(
dict
)"
)
Swift 集合类型(Collection Type) 之 数组(array)@H_502_17@
2. Set@H_502_17@
3. 字典(dictionary)@H_502_17@
var
someDict = [
Int
:
String
]()
如果类型可以根据上下文推断出来
,
可以直接使用
[:]
创建一个空的字典
someDict[
5
] =
"
我
"
someDict = [:]
字典字面量创建
someDict = [
5
:
"
,
2
:
爱
1
:
你
"
]
println
(
"
\
(
someDict
)"
)
如果
dictionary
的
key
和
value
的数据类型都一样
那么可以简写成
var
dict = [
"m"
,27)">"i"
,216)">3
:
4
:
"s"
]
数量
println
(
(
dict.
count
是否为空
isEmpty
下面写法
如果
存在就修改字典原来的值
如果不存在就添加新的元素
.
dict[
"U"
和上面方法一样
如果存在就修改旧的值
如果不存在就添加一个新值
和上面方法不一样的是
该方法会在你更新以后返回旧的值
这样你就可以判断是否更新成功
.
该方法返回的是一个
optional
值
因为如果不存在该
会返回
nil
let
oldValue:
String
? = dict.
updateValue
(
"u"
,forKey:
5
)
(
oldValue
可以通过将
的值设为
nil
来删除一个值
dict[
5
] =
nil
这个方法返回删除掉的值
如果不存在返回
nil.
所以返回值也是
.
let
removedValue = dict.
removeValueForKey
(
(
removedValue
)"
)
遍历字典
//
可以使用
for-in
循环遍历字典
每个元素都以
(key,value)
元组的形式返回
可以临时的将元组的组成拆解成变量或常量
@H_400_404@ for
(key,value)
in
dict {
(
key
):
\
(
value
)"
)
}
也可以只取出字典的
或者
value
for
key
in
dict.
keys
{
)"
)
}
for
value
in
dict.
values
{
)"
)
}
还可以将字典的全部
或者全部
取出来
@H_400_404@ let
dictKeys = dict.
keys
let
dictValues = dict.
values
因为字典是无序的
但可以使用全局函数
sorted
对其
排序
@H_400_404@ for
sortedVaule
in
sorted
(dict.
values
) {
(
sortedVaule
)"
)
}
(
dict
)"
)
3. 字典(dictionary)@H_502_17@
var
someDict = [
Int
:
String
]()
如果类型可以根据上下文推断出来
,
可以直接使用
[:]
创建一个空的字典
someDict[
5
] =
"
我
"
someDict = [:]
字典字面量创建
someDict = [
5
:
"
,
2
:
爱
1
:
你
"
]
println
(
"
\
(
someDict
)"
)
如果
dictionary
的
key
和
value
的数据类型都一样
那么可以简写成
var
dict = [
"m"
,27)">"i"
,216)">3
:
4
:
"s"
]
数量
println
(
(
dict.
count
是否为空
isEmpty
下面写法
如果
存在就修改字典原来的值
如果不存在就添加新的元素
.
dict[
"U"
和上面方法一样
如果存在就修改旧的值
如果不存在就添加一个新值
和上面方法不一样的是
该方法会在你更新以后返回旧的值
这样你就可以判断是否更新成功
.
该方法返回的是一个
optional
值
因为如果不存在该
会返回
nil
let
oldValue:
String
? = dict.
updateValue
(
"u"
,forKey:
5
)
(
oldValue
可以通过将
的值设为
nil
来删除一个值
dict[
5
] =
nil
这个方法返回删除掉的值
如果不存在返回
nil.
所以返回值也是
.
let
removedValue = dict.
removeValueForKey
(
(
removedValue
)"
)
遍历字典
//
可以使用
for-in
循环遍历字典
每个元素都以
(key,value)
元组的形式返回
可以临时的将元组的组成拆解成变量或常量
@H_400_404@ for
(key,value)
in
dict {
(
key
):
\
(
value
)"
)
}
也可以只取出字典的
或者
value
for
key
in
dict.
keys
{
)"
)
}
for
value
in
dict.
values
{
)"
)
}
还可以将字典的全部
或者全部
取出来
@H_400_404@ let
dictKeys = dict.
keys
let
dictValues = dict.
values
因为字典是无序的
但可以使用全局函数
sorted
对其
排序
@H_400_404@ for
sortedVaule
in
sorted
(dict.
values
) {
(
sortedVaule
)"
)
}
(
dict
)"
)
var
someDict = [
Int
:
String
]()
如果类型可以根据上下文推断出来 , 可以直接使用 [:] 创建一个空的字典
someDict[ 5 ] = " 我 "
someDict = [:]
字典字面量创建
someDict = [ 5 : " , 2 : 爱 1 : 你 " ]
println ( " \ ( someDict )" )
如果 dictionary 的 key 和 value 的数据类型都一样 那么可以简写成
var dict = [ "m" ,27)">"i" ,216)">3 : 4 : "s" ]
数量
println ( ( dict. count 是否为空 isEmpty 下面写法 如果 存在就修改字典原来的值 如果不存在就添加新的元素 .
dict[ "U"
和上面方法一样 如果存在就修改旧的值 如果不存在就添加一个新值 和上面方法不一样的是 该方法会在你更新以后返回旧的值 这样你就可以判断是否更新成功 . 该方法返回的是一个 optional 值 因为如果不存在该 会返回 nil
let oldValue: String ? = dict. updateValue ( "u" ,forKey: 5 )
( oldValue 可以通过将 的值设为 nil 来删除一个值
dict[ 5 ] = nil
这个方法返回删除掉的值 如果不存在返回 nil. 所以返回值也是 .
let removedValue = dict. removeValueForKey ( ( removedValue )" )
遍历字典
// 可以使用 for-in 循环遍历字典 每个元素都以 (key,value) 元组的形式返回 可以临时的将元组的组成拆解成变量或常量 @H_400_404@ for (key,value) in dict {
( key ): \ ( value )" )
}
也可以只取出字典的 或者 value
for key in dict. keys {
)" )
}
for value in dict. values {
)" )
}
还可以将字典的全部 或者全部 取出来 @H_400_404@ let dictKeys = dict. keys
let dictValues = dict. values
因为字典是无序的 但可以使用全局函数 sorted 对其 排序 @H_400_404@ for sortedVaule in sorted (dict. values ) {
( sortedVaule )" )
}
( dict )" )
如果类型可以根据上下文推断出来 , 可以直接使用 [:] 创建一个空的字典
someDict[ 5 ] = " 我 "
someDict = [:]
字典字面量创建
someDict = [ 5 : " , 2 : 爱 1 : 你 " ]
println ( " \ ( someDict )" )
如果 dictionary 的 key 和 value 的数据类型都一样 那么可以简写成
var dict = [ "m" ,27)">"i" ,216)">3 : 4 : "s" ]
数量
println ( ( dict. count 是否为空 isEmpty 下面写法 如果 存在就修改字典原来的值 如果不存在就添加新的元素 .
dict[ "U"
和上面方法一样 如果存在就修改旧的值 如果不存在就添加一个新值 和上面方法不一样的是 该方法会在你更新以后返回旧的值 这样你就可以判断是否更新成功 . 该方法返回的是一个 optional 值 因为如果不存在该 会返回 nil
let oldValue: String ? = dict. updateValue ( "u" ,forKey: 5 )
( oldValue 可以通过将 的值设为 nil 来删除一个值
dict[ 5 ] = nil
这个方法返回删除掉的值 如果不存在返回 nil. 所以返回值也是 .
let removedValue = dict. removeValueForKey ( ( removedValue )" )
遍历字典
// 可以使用 for-in 循环遍历字典 每个元素都以 (key,value) 元组的形式返回 可以临时的将元组的组成拆解成变量或常量 @H_400_404@ for (key,value) in dict {
( key ): \ ( value )" )
}
也可以只取出字典的 或者 value
for key in dict. keys {
)" )
}
for value in dict. values {
)" )
}
还可以将字典的全部 或者全部 取出来 @H_400_404@ let dictKeys = dict. keys
let dictValues = dict. values
因为字典是无序的 但可以使用全局函数 sorted 对其 排序 @H_400_404@ for sortedVaule in sorted (dict. values ) {
( sortedVaule )" )
}
( dict )" )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。