運算符分類swift
1 var number1 = 10 2 var number2 = -number1
1 //正號運算符不作任何操做 2 var number3 = +number2 3 println(number3) 4 //b = a++ 至關於a先賦值,在完成自增,而b = ++a,至關於a先完成自增,再去賦值 5 var number4 = ++number1 6 println(number4)
1 let a:Double = 1
取餘api
在Swift中,與C語言的取餘運算符不一樣,Swift中的取餘運算符的左右兩側能夠爲小數,這也是Swift中有所改進的地方數組
var modNumber = 10.0 % 3.0 println(modNumber)
var groupNumber = 10 groupNumber += 10 println(groupNumber)
// eg:< > <= >= ==
1 // 短路現象 2 let logicalNumber1 = 10 3 let logicalNumber2 = 15 4 logicalNumber1 < logicalNumber2 || 3 > 2
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Swift新增
app
1 logicalNumber1...logicalNumber2 2 for aaa in logicalNumber1...logicalNumber2 { 3 println(aaa) 4 }
1 for aaa in logicalNumber1..<logicalNumber2 { 2 println(aaa) 3 } 4 for qujian in 100..<150 { 5 println(qujian) 6 }
1 var optionalNumber:Int? = 10 2 // println(optionalNumber!) 3 // 可選類型能夠修飾任何類型的變量.在構造函數中使用不少 4 let kongheNumber = optionalNumber ?? 20 5 println("空合運算\(kongheNumber)") // 若是可選類型有值,返回可選類型的值,不然返回 ?? 後的值 6 // 注意 7 // 1.空合運算符??前面必須是可選類型 8 // 2.空合運算符??先後的類型必須一致
// 形式結構 a > b ? a : b
var string = "💊💊💊💊💊💊" // 字面量 var string2 = "\"\n\'" println(string) println(string2)
var appendString1 = "houzichao" var appendString2 = appendString1 appendString2 += "shuai" println("\(appendString2)")
var initString = String()
initString += "abc" println(initString) // 大小寫轉換 var changeString = "good girls" // 大寫 var upString = changeString.uppercaseString println(upString) var lowString = upString.lowercaseString println(lowString) // 首字母大寫 var lowString1 = upString.capitalizedString println(lowString1) // 插值 // 在Swift語句中,沒有格式化佔位符,想要實現這樣的效果,咱們要用到字符串插值格式 \() var insertNumber = 18 println("insertNumber = \(insertNumber)")
//與OC區別 // 1.在Swift中的集合類都是值類型,而OC中爲引用類型 // 2.在Swift中,也是使用引用計數管理內存,可是引用計數是適用於對象類型,值類型不須要管理 // 3.在Swift中,引用計數管理內存的方法,與OC中的方法不太同樣 // 4.在Swift中,數組能夠存聽任意類型,OC中只能存放對象類型
// 1.1 Swift中,Array沒有可變與不可變之分,取決於用什麼關鍵字修飾(let, var) //1.2使用字面量給一個數組賦值 // var array = ["a", "b", "c"] // String類型 var array = ["a", "b", 1] // NSObject類型 // println(array)
// 1.調用append方法, 當咱們調用append方法進行元素添加時,添加到數組最後面 array.append("wangxiaofang") // 2.調用 += array += ["houzhichao", "zhangdi"] println(array) // 3.調用insert方法 array.insert("哈哈", atIndex: 0) println(array)
// 調用removeAtIndex方法進行刪除 array.removeAtIndex(0)
// 1.經過小標改變元素 array[0] = "youmo" println(array) // 2.利用下面的方法,不只能夠修改,並且能夠刪除元素 array[0...3] = ["1", "2", "3"] println(array)
// 利用for-in 進行數組遍歷 for value in array { println("value = \(value)") } // 使用全局enumerate函數返回一個由每個數據項索引值和數據值組成的元組 for (index, value) in enumerate(array) { println("\(index):\(value)") }
// 1. var initArray:[String] = [String](count: 3, repeatedValue: "houhou") println(initArray) // 2. var initArray2:Array<String> = Array(count: 4, repeatedValue: "jianjian") println(initArray2) // 使用構造方法,建立的是由一個特定數據類型構成的數組
var dictionary = ["boy":"lishuanglong", "girl":"shiyingying"] println(dictionary)
// 使用key增長鍵值對 dictionary["age"] = "34"
// 調用removeValueForKey // dictionary.removeValueForKey("age") // println("----------------\(dictionary)")
// 1.使用key修改value dictionary["girl"] = "liujingrang" println(dictionary) // 2.使用updateValue方法修改 // 能夠進行修改,也能夠進行添加,當填入的鍵值存在時,就會進行數據更新,把舊值返回出來,當鍵不存在時,就會進行添加,放回是nil(返回可選類型) let returnValue = dictionary.updateValue("18", forKey: "age") println("returnValue=\(returnValue), dictionary = \(dictionary)") let returnValue2 = dictionary.updateValue("19", forKey: "class") println("returnValue=\(returnValue2), dictionary = \(dictionary)")
for (key, value) in dictionary { println("key = \(key), value =\(value)") }
// 使用字典初始化方式建立的事固定鍵值類型的字典 // 1. var initDictionary:[String:String] = [String:String]() // 2. var initDictionary2:Dictionary<String, String> = Dictionary()
for value in 0...10 { println(value) }
// 當咱們不須要使用區間的值得實惠,咱們可使用"_"告訴系統 dom
for _ in 1...10 { println("jiang") }
for var index = 0; index < 10; index++ { println("index = \(index)") }
1 var whileNumber = 0 2 while whileNumber < 10 { 3 println("whileNumber = \(whileNumber)") 4 whileNumber++ 5 }
1 do { 2 println("哈哈哈") 3 } while (false)
1 var houValue = 20 2 if houValue <= 21 { 3 println("小於或等於21") 4 } else { 5 println("大於21") 6 }
1.在Swift中,是沒有貫穿的,只會執行知足條件的語句,不用加break不會貫穿函數
2.每個case分支必須有個一個語句,假如真不想寫,能夠加break,經過編譯優化
3.case能夠加多個條件spa
4.真想貫穿,請加fallthoughcode
1 var switchNumber = 1 2 switch switchNumber { 3 case 1, 2, 3: 4 println("1") 5 fallthrough // 真想貫穿,請加fallthough 6 case 2: 7 println("2") 8 default: 9 println("others") 10 }
5.Swift中,switch-case能夠進行值的綁定對象
1 var (x, y) = (10, 0) 2 switch (x, y) { 3 case (let xValue, 0): 4 println(xValue) 5 case (0, let yValue): 6 println(yValue) 7 default: 8 println("others") 9 }
6.swift中,switch-case能夠進行區間匹配
1 var domainNumber = 40 2 switch domainNumber { 3 case 1...10: 4 println("幾塊錢") 5 case 11...100: 6 println("土豪") 7 default : 8 println("others") 9 }
// 控制流中,咱們還會遇到的關鍵字: break, continue, fallthrough // break在循環當中,跟C語言語法規則同樣,用來結束整個循環 // continue在循環中,跟C語言的規則同樣,結束本次循環 // fallthough
當咱們遇到多個循環嵌套的時候, 咱們根據需求, 想要關掉某個循環, 就要使用標籤語句, 用來區別不一樣的循環, 標籤語句的定義語法: name: 想要標識的循環以前
1 jiang: while true { 2 for var labelNumber = 0; labelNumber < 100; labelNumber++ { 3 println("\(labelNumber)") 4 if labelNumber == 5 { 5 break jiang // 結束所有循環 6 } 7 } 8 }