//元组:元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
let httpError = (404,"not found")
print(httpError)
//对于元组,如果你只需要一部份值,在临时修改值的时候使用,其余 可用 类或者结构体
let httpRight = (404,"d")
print(httpRight.1)
//可选类型,有. 没有
//包含一个可选值
var canChoose: Int? = 200
canChoose = nil
print(canChoose)
//如果不给,则会自动默认为nil
var strName: String?
print(strName)
//错误处理
func canTthorError() throws {
print("wrong")
}
do {
try canTthorError()//没有错误信息抛出
} catch {//有错误信息抛出
}
//断言
let age = 0
//assert(age > 0)
//断言,当条件可能为假的时候使用,但是最终的条件一定要为真
// 整数类型的下标索引被传入一个自定义下标脚本实现,但是下标索引值可能太小或者太大。 • 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
// • 一个可选值现在是 nil,但是后面的代码运行需要一个非 nil 值。
//初始化空字符串
var emptyString = String()
print(emptyString)
if emptyString.isEmpty {
print("空字符串 ")
}
for character in "dog".characters {
print(character)
}
var indexString = "aoqsfhewofhjeow"
//取出某一个字符串
let index = indexString.startIndex.advancedBy(3)
print( indexString[index])
//取出第一个或者最后一个字符串
print(indexString[indexString.startIndex],indexString.endIndex)
//遍历字符串
for index in indexString.characters.indices {
print(indexString[index])
}
//插入和删除一个字符
indexString.insert( "l",atIndex: indexString.startIndex.advancedBy(1))
print(indexString)
//删除
indexString.removeAtIndex(indexString.startIndex.advancedBy(0))
print(indexString)
//插入和删除一个字符串
indexString.insertContentsOf("hello".characters,at: indexString.endIndex.predecessor())
print(indexString)
indexString.removeRange(indexString.endIndex.advancedBy(-4) ..< indexString.endIndex)
//字符串比较
//字符串或者字符相等
let firstString = "hello everyone welcome to china!"
let secondString = "hello everyone welcome to china!"
if firstString == secondString {
print("相等")
}
//前缀或者后缀想等的判断
let numberArray = ["7123654","2","3"]
var count = 0
for number in numberArray {
if number.hasPrefix("1") {
count += 1
}
}
print(count)
//集合类型
//数组(有序)、字典、集合
//数组
//空数组
var emptyArray = [Int]()
print(emptyArray)
//给孔数组添加一个元素
emptyArray.append(3)
//创建一个带有默认值的数