字符串
swift 中String 类型是值类型。如果你创建了一个新的字符串,那么当其进行常量,变量赋值操作,活在函数/方法中传递时,会进行值拷贝。任何情况下,都会对已有的字符串值创建新副本,并对该新副本近行传递或赋值操作。在实际编译时,swift 编译起会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着你将字符串作为值类型的同时可以获得极高的性能
0.得到一个空字符串。Var string = “” 或者是 var emptyString = Sting( )
1.使用for - in 循环来遍历字符串中的characters 属性来获取每一个字符的值
2.使用+连接字符串创建一个新的字符串
3通过 +=将一个字符串添加到一个已经存在的字符串变量上。使用append()方法将一个字符附加到一个字符串变量的尾部
4使用\()来字在字符串中插入你想插入的内容
5字符串的count属性:来获得字符串中Characrer 值的数量
6 startIndex属性可以获取一个string的第一个Character的索引。使用endIndex属性可以获取最后一个Character的后一个位置的索引(C语言中字符串中的最后一位为空)。因此endIndex属性不能作为一个字符串的有效下标。如果string是空串,startIndex 和endIndex是相同的
6.1 通过调用String.Index的predecessor()方法,可以立即得到前面一个索引,调用successsor()方法可以立即得到后面一个索引或者advancedBy(_:)得到对应索引的字符。但如果尝试获取出界的字符串索引,就会抛出一个运行时错误
7,使用characters属性的indices属性会创建一个包含全部索引的范围(Range),用来在一个字符串中访问单个字符
for index in greeting.characters.indeces{
//得到的都是int 类型的索引
}
8.调用insert(_:atIndex:)方法可以在一个字符串的指定索引插入一个字符。
8.1 调用insertContentsOf(_:at:)方法可以在一个字符串的指定索引插入一个字符串。
8.2调用removeAtIndex(_:)方法可以在一个字符串的指定索引删除一个字符。
8.3 调用removeRange(_:)方法可以在一个字符串的指定索引删除一个子字符串
9比较字符串可以使用== 或者!=
10.调用字符串的hasPrefix(_:)/hasSuffix(_:)方法来检查字符串是否拥有特定的前缀/后缀。
数组
1.创建一空数组
我们可以使用构造语法来创建一个由特定数据类型构成的空数组
var someInts = [Int]()
通过构造函数类型,someInts的值类型被推断为[Int].或者,如果代码上下文中已经提供了类型信息,例如一个函数参数或者一个已经定义好类型的常量或者变量,我们可以使用空数组语句创建一个空数组,它的写法很简单:[]
someInts = []
//现在someInts 是空数组,但是任然是[Int]类型的。 空数组的默认类型都是Int类型的。
2.创建一个带有默认值的数组
Swift 中的 Array 类型还提供了一个可以创建特定大小并且所有数据都被默认的构造方法。我门可以把准备加入新数组的数据项数量(count)和适当类型的初始值(repeatedValue)传入数组构造函数
var threeDoubles = [Double](count: 3, repeaetedValue:0.0)
3.通过两个数组相加创建一个数组
我门可以使用加法操作符 + 来组合两种已存在的相同类型数组。新数组的数据类型会被从两个数组的数据类型中推断出来
4,用字面量构造数组
5,
5.1使用数组的只读属性count 来获取数组中的数据项数量。
5.2使用布尔值属性 isEmpty 作为检查 count 属性的值是否为0 的捷径
5.3使用append(_:)方法在数组后面添加新的数据项
5.4 使用加法赋值运算符(+=)也可以直接在数组后面添加一个或多个拥有相同类型的数据项
5.5 利用下标来改变莫个已有索引值对应的数据值
5.6还可以利用下标来一次改变一系列数据值,即使新数据和原有数据的数量是不一样的
5.7 调用数组的insert(_:atIndex:)在具体的位置添加数据。removeAtIndex(_:)或removeLast()方法来移除数组中的某一项并且返回移除项的数据:
5.8 使用for in。可以得到数组中的每一个值
使用 enumerate()方法可以得到由每一个数据项索引值和数据值组成的元组,我门可以把这个元组分解成临时常量或者变量来进行遍历:
集合(Set)
集合用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以使用集合而不是数组。
var set: Set = [“Rock”, “Classical”, “hip hop”]
1.为了找出一个Set中元素的数量,可以使用其只读属性count;
2.使用布尔属性isEmpty作为一个缩写形式去检查count属性是否为0:
3.调用Set 的 remove(_:)方法去删除一个元素,如果该值是set的一个元素则删除该元素并且返回被删除的元素值。如果Set不包含该值,则返回nil .使用removeAll()方法删除集合中的所有元素。
4.使用contain(_:)方法去检查Set 中是否包含一个特定的值:
5.0.使用intersect(_:)方法括号中是另一个集合根据两个集合都包含的值创建一个新的集合。
5.1.使用exclusiveOr(_:)方法根据在一个集合中但不在两个集合中的值创建一个新的集合(出去A和B共有的元素后。A和B中的所有元素)
5.2.使用union(_:)方法根据两个集合的值创建一个新的集合(A集合和B集合包含的所有元素)
5.3.subtrack(_:)方法根据不在该集合中的值创建一个新的集合(在A集合中不在B集合中)
6.使用for in 来遍历集合
字典
创建一个空字典
var namesOfIntegers = [Int : String]()
创建一个不定字典[:]也可以用[Key : Value]
1. 通过字典的只读属性count 来获取某个字典的数据项数量
2.使用布尔属性isEmpty
3. 使用下标语法添加新值。或改值:airports[“LHR”] = “London” . airport[“LHR”] = “London Heathrow"
4.使用 updateValue(_:forKey:)方法可以设置或者更新特定健对应的值 并且返回对应值的类型的可选值。
5.removeValueForKey(_:). 可以用来在字典中移除键值对。并且返回被移除的值。在没有值的情况下返回Nil
6.使用 for- in循环来遍历莫个字典中的键值对每一个字典中的数据都以(key,value)元祖形式返回,然后使用临时变量或者变量来分解这些元祖:
for (airportCode, airportName) in airports {
print(“\(airportCode):\(airportName)")
}
7.通过访问keys 或者 values 属性,我们也可以遍历字典的键或者值:
for airportCode in airports.keys {
print(“Airpot code:\(airpotCode)")
}
for airportName in airports.values {
print(“Airpot name: \(airpotName)")
}
8,如果我们自身需要某个字典的键集合或者值集合来作为某个接受Array 实例的API 的参数,可以直接使用 keys 或者values 属性构造一个新数组:
let airportCodes = [String](airports.keys)
let airportNames = [String](airports.values)
本文介绍了Swift编程语言中字符串、数组、集合与字典的基本概念与操作方法,包括如何创建、操作和遍历这些数据结构,以及它们在实际编程中的应用。
3236

被折叠的 条评论
为什么被折叠?



