Swift語言基礎(chǔ)學習;
在swif中t調(diào)用方法用? .??來調(diào)用方法;
###? 如何去定義標志符
1. Swift定義標識符,必須制定該標識符是一個變量(let) 還是常量 (var)
2.規(guī)范:
let / var? 標識符 :類型 =? 賦值
3.如果一行代碼中只有一條語句,那么語句結(jié)束時, ;冒號 可以省略
4.Swift中不需要下OC中的 @;
###? 常量變量使用的注意
1.開發(fā)中優(yōu)先使用常量 let 防止不小心修改掉之前賦的值
2.常量的本質(zhì);指向的內(nèi)存地址不可以修改,但是可以通過內(nèi)存地址找到對應的對象,通過對象修改內(nèi)部的屬性;
比如創(chuàng)建一個UIView ,view里面有backGroud ? ? alpha? ? frame? 之類 ,可以去修改;
3. Swift一般創(chuàng)建對象:
let? view : UIView =? UIView ( ) 一般后面都跟上括號( )
### 類型推導
1.在swift中如果在定義一個標識符時有直接給該標識符進行賦值, 那么系統(tǒng)會自動根據(jù)后面賦值的類型, 推導出前面標識符的類型
2.如果有直接賦值, 那么標識符后面的類型可以省略
3.可以通過Option + 鼠標左鍵, 查看標識符的類型
### 基本運算
1.進行基本加減運算,兩個常量的運算;
要想進行運算;必須是同一個類型的才能進行基本運算;
### 邏輯分支
Swift和OC的差異
if后面的 ( ) 可以省略掉
swift中沒有非0(nil)即真
Bool --> true/false
### 三目運算符
let? result = a > b ? a : b? //三目運算符,OC基本沒有多少區(qū)別,只是書寫格式不一樣;
### guard 的基本使用
1.? guard 要么用到if判斷中; 要么用到函數(shù)當中;
2. 對于guard 判斷,他的易讀性比 if else 會好很多
當有很多的 if else 連串,鑲嵌;,那么易讀性就比較差;
### switch 語句的判斷使用
1. swift 中 switch 和 OC中的差異
switch 分支后面的括號可以省略;
case結(jié)束之后可以不加break,也不會產(chǎn)生穿透;
補充點:
如果希望產(chǎn)生case穿透,需要在語句結(jié)束加上 fallthrough
在swift中的switch的case后面可以跟上,并且,多個條件以? , 分隔開;
OC中的switch只能判斷整形
switch的特殊用法:
可以來判斷浮點型; 字符串類型 + - * / 之類的? 還可以判斷區(qū)間;
區(qū)間類型有:
1.半開半閉區(qū)間;0..<10 ? 0~9
2.閉區(qū)間? 0…10 ? ? 0~10;

### for循環(huán)遍歷
普通的遍歷:
for var i = 0; i < 10 ? i++
swift 的遍歷:
區(qū)間遍歷: 開區(qū)間
for i in 0..<10 {
}
閉區(qū)間:
for i in 0…10 {
}
如果一個標志符不需要使用;那么可以通過? ? ? _ 來代替
for _in 0..< 10
### while 循環(huán)
1. while 后面的()可以省略
2. 沒有非0 (nil)即真
### 字符串的基本使用
1.1.定義不可變字符串 : 使用let修飾
2.定義可變字符串 var
2。遍歷字符串中所有的字符

3.獲取字符串的長度:
//獲取字符串的長度
let length = str.characters.count
4.字符串與字符串之間的拼接
一般都是直接將兩個字符串相加;
4.1字符串與其他標識符之間的拼接
一般用斜杠去分割開
4.2 拼接過程中的格式化:

### 截取的方式有兩種
1.方式一: 將String類型轉(zhuǎn)成NSString類型, 再進行截取
2.方式二: Swift原生方式進行截取\
###數(shù)組的基本使用:
不可變數(shù)組:
let array = ["why", "yz", "lmj", "lnj"]
可變數(shù)組:
var arrayM = Array()
var arrayM = [String]()
可變數(shù)組 ,由于數(shù)組是泛型集合,必須指定該數(shù)組中之后存放的元素;
## 數(shù)組的合并:
只有相同類型的數(shù)組元素可以進行合并
### 字典的基本使用
區(qū)別字典還是數(shù)組:
在字典的時候, 系統(tǒng)會根據(jù)[]中存放時鍵值對還是一個個元素來判斷該[]是一個數(shù)組還是字典
字典的增刪該查
// 系統(tǒng)類型的字典也不可以相加合并

字典:// 系統(tǒng)類型的字典也不可以相加合并

###元組的基本創(chuàng)建方
###可選類型的基本使用
只有可選類型才能賦值為nil
// Optional泛型集合 --> 必須明確執(zhí)行該可選類型中存放值得類型
加 ! 號可以強制解包
取值的注意:
// 如果可選類型中是沒有值的, 那么強制解包程序會崩潰
// 建議: 在對可選類型進行解包前, 最好先判斷是否為nil
if name != nil {
print(name!)
print(name!)
print(name!)
print(name!)
print(name!)
}
.解包 : 可選綁定
系統(tǒng)判斷name有沒有值, 如果沒有值, 直接跳過 {}
如果有值, 那么系統(tǒng)會對name就行強制解包, 并且將解包后的結(jié)果賦值給前面的tempName
if let tempName = name {
print(tempName)
print(tempName)
print(tempName)
}
if let name = name {
print(name)
print(name)
print(name)
print(name)
}