Swift運算符

運算符分類swift

運算符分類

一元運算符

1.負號運算符

1 var number1 = 10
2 var number2 = -number1

 

2.正號運算符

1 //正號運算符不作任何操做
2 var number3 = +number2
3 println(number3)
4 //b = a++ 至關於a先賦值,在完成自增,而b = ++a,至關於a先完成自增,再去賦值
5 var number4 = ++number1
6 println(number4)

 

二元運算符

1.賦值運算符

1.1在Swift當中,賦值語句沒有返回值,不能夠跟if-else相結合

1 let a:Double = 1

 

2.算術運算符

取餘api

在Swift中,與C語言的取餘運算符不一樣,Swift中的取餘運算符的左右兩側能夠爲小數,這也是Swift中有所改進的地方數組

 

var modNumber = 10.0 % 3.0

println(modNumber)

 

3.組合賦值運算符

var groupNumber = 10
groupNumber += 10
println(groupNumber)

 

4.比較運算符

// eg:< > <= >= ==

 

5.邏輯運算符

1 // 短路現象
2 let logicalNumber1 = 10
3 let logicalNumber2 = 15
4 logicalNumber1 < logicalNumber2 || 3 > 2

 

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Swift新增app

6.區間運算符

6.1全閉區間

1 logicalNumber1...logicalNumber2
2     for aaa in logicalNumber1...logicalNumber2 {
3         println(aaa)
4     }

 

6.2半開半閉

1 for aaa in logicalNumber1..<logicalNumber2 {
2         println(aaa)
3     }
4     for qujian in 100..<150 {
5         println(qujian)
6     }

 

7.空合運算符, 與可選類型配合使用

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

字符串

1.字符串的字面量

var string = "💊💊💊💊💊💊" // 字面量
var string2 = "\"\n\'"
println(string)
println(string2)

2.swift中的字符串和oc中字符串的區別

2.1沒有可變類型與不可變類型之分,在Swift中,字符串是否可變,取決於聲明的變量類型,若爲let,不可變,若爲var,可變

2.2在Swift中的字符串是值類型;OC中,不加特殊聲明是引用類型,不用擔憂內存問題,Swift已經作了優化

var appendString1 = "houzichao"
var appendString2 = appendString1
appendString2 += "shuai"
println("\(appendString2)")

2.3在Swift中,String類型和OC中的NSString作了完美對接,換句話說,就是Swift中String可使用NSString的方法

3字符串的初始化

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)")

Swift中的集合

//與OC區別
// 1.在Swift中的集合類都是值類型,而OC中爲引用類型
// 2.在Swift中,也是使用引用計數管理內存,可是引用計數是適用於對象類型,值類型不須要管理
// 3.在Swift中,引用計數管理內存的方法,與OC中的方法不太同樣
// 4.在Swift中,數組能夠存聽任意類型,OC中只能存放對象類型

數組

1.Array

// 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)
// 使用構造方法,建立的是由一個特定數據類型構成的數組

字典

1.使用字面量賦值

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循環

1.for-in循環

for value in 0...10 { println(value) }

 

// 當咱們不須要使用區間的值得實惠,咱們可使用"_"告訴系統 dom

for _ in 1...10 {
     println("jiang") 
}

 

2.for循環

for var index = 0; index < 10; index++ {
    println("index = \(index)")
}

 

 

while循環

1 var whileNumber = 0
2 while whileNumber < 10 {
3     println("whileNumber = \(whileNumber)")
4     whileNumber++
5 }

 

do-while循環

1 do {
2     println("哈哈哈")
3 } while (false)

 

If-else語句

1 var houValue = 20
2 if houValue <= 21 {
3     println("小於或等於21")
4 } else {
5     println("大於21")
6 }

 

switch-case

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 }
相關文章
相關標籤/搜索