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