字符
1.单个字符来指定字符常量,如”A”,”9”
2.转义字符表示特殊字符常量,如”\n”,”\t”
3.使用\u{n}的Unicode形式,n代表一个1~8为的十六进制数
4.必须使用双引号括起来
5.Swift中的每一个字符代表了一个可扩展字母集
var s: Character = "美"
var quote1 = "\'" // 通过转义字符创建的字符是单引号
var quote2 = "\u{22}" // 通过Unicode创建的是双引号
//print(s)
//print("quote1的值为:\(quote1), quote2的值为:\(quote2)")
// 使用Unicode形式定义4个字符
var diamond: Character = "\u{2666}"
var heart: Character = "\u{2663}"
var club: Character = "\u{2665}"
var spade: Character = "\u{2660}"
//print("\(diamond), \(heart), \(club), \(spade)")
字符串(重点)
1.字符串的创建
2.字符串基本操作
// 1.创建
var str1 = "苹果"
// 使用构造器来
var str2 = String() // 初始化字符串实例
// 创建多个重复字符的字符串,需要指明字符的类型
var str3 = String(count: 4, repeatedValue: Character("a"))
var strRep = String(count: 5, repeatedValue: UnicodeScalar("��")) // ��表情为Unicode编码1F436
//print(strRep)
//print(str3)
//print(str3.isEmpty) // 判断字符串是否为空
// 2.字符串基本操作
var str4 = str1 + "公司" // 用 + 进行拼接,比OC方便多了
str1 += "你好" // 用 += 将字符串拼接到自身
//print(str1)
let char: Character = "!"
str1.append(char)
//print(str1)
// 在swift2.0中,countElements方法被移除,可以直接按照下面方法点出字符串的长度
var length = str3.characters.count
//print("str3 has \(length) characters")
// Swift中的字符串是否可以修改仅通过定义的是变量还是常量来决定
// 字符串比较
let quotation = "我们是一样一样滴"
let sameQuotation = "我们是一样一样滴"
if quotation == sameQuotation {
// print("这两个字符串被认为是相同的")
}
// 检查字符串是否拥有特定前缀/后缀,两个方法均需要以字符串作为参数传入并传出Boolean值
var food = ["Fruits: apple",
"Fruits: orange",
"Fruits: banana",
"Vegetables: tomato",
"Vegetables: potato"
]
for fru in food {
if fru.hasPrefix("Fruits"){
// print(fru)
}
if fru.hasSuffix("o"){
// print(fru)
}
}
数组(重点)
1.数组创建
2.访问和修改数组
/*声明数组写法:
第一种:Array<someType>, 如Array<Int>
第二种:[SomeType], 如[String]
*/
// 第一种
var myArr = Array<String>() // 创建空数组,并赋值给myArr变量
var num = Array<Int>(count: 3, repeatedValue: 1)
//print(num)
// 第二种
var arr: [Int] = [1, 2, 3]
// 使用构造语法来创建一个由特定数据类型构成的空数组
var sonmeInts = [Int]()
var threeDoubles = [Double](count: 3, repeatedValue: 0.0)
//print(threeDoubles)
var food1 = ["apple", "orange", "banana", "tomato", "potato"] // 用的最多
//print(food1[3]) // 取数组下标
//print(food1.count) // 取数量
var shoppingList = ["Eggs", 123, true]
for item in shoppingList{
// print(item)
}
for fruit in food1{
// print(fruit)
}
// 数组可变性
// 1.append() 方法在数组尾部添加新元素
food1.append("Vegetables: mushroom")
//print(food1)
// 2.通过加法添加新元素
food1 += ["pineapple", "pitaya"]
//print(food1)
food1[0...2] = ["a", "b"] // 替换元素
//print(food1)
// 3.不能使用下标语法在数组尾部添加新项,调用insert(atIndex:)方法来在某个具体索引值前添加数据项
food1.insert("Meat", atIndex: 0)
//print(food1)
// 使用removeAtIndex方法来移除数组中的某一项
food1.removeAtIndex(0)
//print(food1)
// 把数组中的最后一项移除,可以使用removeLast方法
food1.removeLast()
//print(food1)
// 删除所有元素,参数是否保留数据缓冲,默认是false
food1.removeAll(keepCapacity: false)
//print(food1)
字典(重点)
1.字典的声明和创建
2.字典的使用
/*
Dictionary<keyType, valueType>
[keyType: valueType]
*/
// 声明字典
var dic1: Dictionary<String, String>
var scores: [String: Int]
// 创建字典
dic1 = Dictionary<String, String>()
scores = Dictionary<String, Int>(minimumCapacity: 5) // 最小容量为5
var emptyDic: [String: Double] = [:] // 空字典,冒号不可少
//print(emptyDic.isEmpty)
// 通过常量或者变量决定字典是否可变
var person = ["age": "18",
"name": "Tom",
"身高": "178"]
//print(person["age"])
//print(person["weight"]) // 不存在key,返回nil
person["name"] = "jack" // 可以直接对key改值
person["weight"] = "90" // 对不存在的key设置value,字典将会添加key-value对
//print(person)
var height: String? = person["身高"] // 如果类型不匹配就会报错
if height != nil{
// print(height!) // 这里带!是强制解析
}
// updateValue(forkey:)方法在这个键不存在对应值的时候,设置值或者在存在时更新已存在的值,这个方法返回更新值之前的原值
if let oldName = person.updateValue("Lucy", forKey: "name"){
// print("原来的值是:\(oldName)")
}
//print(person)
for (key, value) in person{
// print("\(key): \(value)")
}
// removeValueForKey方法也可以用来在字典中移除键值对
//person.removeValueForKey("name")
//print(person)
//person.removeAll(keepCapacity: false) // 移除所有
//print(person)
let keysArr = [String](person.keys) // 取出所有key
let valuesArr = [String](person.values) // 取出所有value
//print(keysArr)
//print(valuesArr)
下一节:Swift中的函数和闭包