【Swift4.0】集合类型-Set

翻译能力有限,如有不对的地方,还请见谅!希望对Swift的学习者有所帮助,使用的编写工具:JQNote    InNote(iPhone)

这章节介绍集合的另一种类型Set,写作Set, Element是存储的类型。与Array不同,Set没有类似的简写格式。创建并且初始化一个空的Set:var letters = Set()print("letters is of type Setwith \(letters.count) items.")// Prints "letters is of type Setwith 0 items.”创建一个Set,通过一个Array:var favoriteGenres: Set= ["Rock", "Classical", "Hip hop"]由于该Set已经特定了值类型为String,所以它只允许存储String值。一个Set类型不能够仅仅通过一个Array来推断类型,所以,必须明确声明Set类型。然而,因为Swift有类型推断,所以如果使用一个包含相同类型值的Array来初始化Set,那么就不需要写存储类型了,上面的例子可以简写为:var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]因为Array中所有的值都为String类型,所以Swift可以推断出favoriteGenres的正确类型为Set.

获取和修改Set

你可以获取和修改一个Set,通过它的方法和属性。

获取Set的存储项的数量,可以使用它的只读属性count:

print("I have \(favoriteGenres.count) favorite music genres.")

// Prints "I have 3 favorite music genres.

使用isEmpty属性来判断是否Set的count属性为0:

if favoriteGenres.isEmpty {

print("As far as music goes, I'm not picky.")

} else {

print("I have particular music preferences.")

}

// Prints "I have particular music preferences.”

检查Set是否包含某个特殊项,使用 contains(_:)方法

if favoriteGenres.contains("Funk") {

print("I get up on the good foot.")

} else {

print("It's too funky in here.")

}

// Prints "It's too funky in here.”

遍历Set

你可以使用for-in来遍历Set中的所有值:

for genre in favoriteGenres {

print("\(genre)")

}

// Jazz

// Hip hop

// Classical”

摘录来自: Apple Inc. “The Swift Programming Language (Swift 4)”。 iBooks.

Set是无序的集合,为了以特定顺序遍历Set,可以使用sorted()方法,该方法返回一个 使用<操作符排序过的Array:

for genre in favoriteGenres.sorted() {

print("\(genre)")

}

// Classical

// Hip hop

// Jazz”

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 .数组 Arrays 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。这和O...
    iceMaple阅读 477评论 0 1
  • Swift 语言提供 Arrays 、 Sets 和 Dictionaries 三种基本的集合类型用来存储集合数据...
    平凡之路561阅读 379评论 0 0
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,140评论 0 4
  • 情为何物千年问,叫人相思夜难眠。 天生魔物植脑海,此物散发便生情。 情顺自然精神悦,情坠深处似毒瘾。 两相情愿最时...
    徐一村阅读 257评论 0 2
  • 小孩,嗯,其实已经不小了,目前会计研究汪一枚。最近两个月一直处在和注会撕扯的斗争中,一天一章那么啃,抱着书本沉沦,...
    dreamelody阅读 232评论 0 0