Swift3.0之基本知識
常量&變量
- 在Swift中規定:在定義一個標識符時必須明確說明該標識符是一個常量還是變量
- 使用let來定義常量,定義之后不可以修改
- 使用var來定義變量,定義之后可以修改
變量的基本使用
import UIKit
let a : Int = 10
// 錯誤寫法,當一個標識符定義為常量時是不可以修改的
// a = 20
var b : Int = 20
//因為b定義為變量,因此是可以修改的
b = 30
常量和變量的使用注意:
import UIKit
/*
常量使用注意:
1> 優先使用常量
2> 常量的本質
*/
// 1.注意一:在開發中let/var在選擇時優先使用常量,防止不小被修改掉(let)
// 如果一個標識符不需要修改,但是聲明稱了變量,那么編譯器會報警告
// 2.常量的本質:
// 含義:指向的內存地址不可以修改,但是可以通過內存地址,找到對應的對象,之后修改對象內部的屬性
/*
OC中創建對象:
UIView *view = [[UIView alloc] init];
view = [[UIView alloc] init];
Swift中創建對象:
var view : UIView = UIView()
*/
/*
變量的做法
var view : UIView = UIView()
view = UIView()
*/
// 創建常量View
let view = UIView()
// view = UIView() 錯誤做法
view.alpha = 0.5
// Swift中創建結構體:結構體類型()
view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
// Swift中調用方法,統一使用點語法
view.backgroundColor = UIColor.red
創建對象補充
- 創建UIView對象,并且在UIView中添加UIButton
import UIKit
// 1.創建UIView對象
// OC : [[UIView alloc] initWithFrame:CGRect]
let viewRect = CGRect(x: 0, y: 0, width: 100, height: 100)
let view : UIView = UIView(frame: viewRect)
// 2.設置UIView的屬性
view.backgroundColor = UIColor.orange
// 3.創建UIButton
let btn : UIButton = UIButton(type: .custom)
// 4.設置UIButton的屬性
btn.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
btn.backgroundColor = UIColor.purple
/*
Swift中枚舉類型:
1> 如果可以根據上下文推導出類型可以直接.具體的類型
2> 如果根據上下文推導不出具體的類型,則需要:類型.具體的類型
*/
btn.setTitle("按鈕", for: .normal)
btn.setTitleColor(UIColor.white, for: .normal)
// 5.將btn添加到UIView中
view.addSubview(btn)
Swift中數據類型
Swift類型的介紹
- Swift中的數據類型也有:整型/浮點型/對象類型/結構體類型等等
- 先了解整型和浮點型
- 整型
- 有符號
- Int8 : 有符號8位整型
- Int16 : 有符號16位整型
- Int32 : 有符號32位整型
- Int64 : 有符號64位整型
- Int : 和平臺相關(默認,相當于OC的NSInteger)
- 無符號
- UInt8 : 無符號8位整型
- UInt16 : 無符號16位整型
- UInt32 : 無符號32位整型
- UInt64 : 無符號64位整型
- UInt : 和平臺相關(常用,相當于OC的NSUInteger)(默認)
- 有符號
- 浮點型
- Float : 32位浮點型
- Double : 64浮點型(默認)
// 定義一個Int類型的變量m,并且賦值為10
var m : Int = 10
// 定義一個Double類型的常量n,并且賦值為3.14
let n : Double = 3.14
Swift中的類型推導
- Swift是強類型的語言
- Swift中任何一個標識符都有明確的類型
- 注意:
- 如果定義一個標識符時有直接進行賦值,那么標識符后面的類型可以省略.
- 因為Swift有類型推導,會自動根據后面的賦值來決定前面的標識符的數據類型
- 可以通過option+鼠標左鍵來查看變量的數據類型
import UIKit
let m = 20
let n = 30.5
// 錯誤寫法 :
// Swift中沒有隱式轉化,不會自動將一個Int類型轉成Double類型,因此不同類型之間不能進行運算
// let result = m + n
// 正確做法
// 1> 將Int類型轉成Double : Double(標識符)
// 2> 將Double類型轉成Int : Int(標識符)
let result1 = Double(m) + n
let result2 = m + Int(n)
邏輯分支
一. 分支的介紹
- 分支即if/switch/三目運算符等判斷語句
- 通過分支語句可以控制程序的執行流程
二. if分支語句
- 和OC中if語句有一定的區別
- 判斷句可以不加()
- 在Swift的判斷句中必須有明確的真假
- 不再有非0即真
- 必須有明確的Bool值
- Bool有兩個取值:false/true
// 演練一:
let a = 10
// 錯誤寫法:
//if a {
// print("a")
//}
// 正確寫法
if a > 9 {
print(a)
}
// 演練二:
let score = 87
if score < 60 {
print("不及格")
} else if score <= 70 {
print("及格")
} else if score <= 80 {
print("良好")
} else if score <= 90 {
print("優秀")
} else {
print("完美")
}
三.guard的使用
- guard是Swift2.0新增的語法
- 它與if語句非常類似,它設計的目的是提高程序的可讀性
- guard語句必須帶有else語句,它的語法如下:
- 當條件表達式為true時候跳過else語句中的內容,執行語句組內容
- 條件表達式為false時候執行else語句中的內容,跳轉語句一般是return、break、continue和throw
guard 條件表達式 else {
// 條換語句
break
}
語句組
//---例子---
var age = 18
func online(age : Int) -> Void {
guard age >= 18 else {
print("回家去")
return
}
print("可以上網")
}
online(age)
四.switch分支
switch的介紹
- Switch作為選擇結構中必不可少的語句也被加入到了Swift中
- 只要有過編程經驗的人對Switch語句都不會感到陌生
- 但蘋果對Switch進行了大大的增強,使其擁有其他語言中沒有的特性
switch的簡單使用
- 基本用法和OC用法一致
- 不同之處:
- switch后可以不跟()
- case后可以不跟break(默認會有break)
- 例子:
- 不同之處:
let sex = 0 switch sex { case 0 : print("男") case 1 : print("女") default : print("其他") }
- 簡單使用補充:
- 一個case判斷中,可以判斷多個值
- 多個值以,隔開
let sex = 0 switch sex { case 0, 1: print("正常人") default: print("其他") }
- 簡單使用補充:
- 如果希望出現之前的case穿透,則可以使用關鍵字fallthrough
let sex = 0
switch sex {
case 0:
fallthrough
case 1:
print("正常人")
default:
print("其他")
}
switch支持區間判斷
- 什么是區間?
- 通常我們指的是數字區間:010,100200
swift中的區間常見有兩種 - 半開半閉區間:0..<10 表示:0~9,不包括10
閉區間:0…10 表示:0~10
- 通常我們指的是數字區間:010,100200
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("幾個")
case 80..<90:
print("良好")
case 90..<100:
print("優秀")
default:
print("滿分")
}
循環使用
循環的介紹
- 在開發中經常會需要循環
- 常見的循環有:for/while/do while.
- 這里我們只介紹for/while,因為for/while最常見
for循環的寫法
- 區間for循環
for i in 0..<10 {
print(i)
}
for i in 0...10 {
print(i)
}
//特殊寫法:如果在for循環中不需要用到下標i
for _ in 0..<10 {
print("hello")
}
while和do while循環
- while循環
- while的判斷句必須有正確的真假,沒有非0即真
- while后面的()可以省略
var a = 0
while a < 10 {
a++
}
//--do while循環:使用repeat關鍵字來代替了do--
let b = 0
repeat {
print(b)
b++
} while b < 20
更多關于Swift
Swift基本語法02--基本數據類型