Swift 5.0 (二) 可選類型 、函數

可選類型

nil是一個特殊的類型了和真實類型不匹配是不能賦值nil的 但開發中需要賦值nil,因此出可選類型
//常規 不常用
var name :Optional = nil
//語法糖
var name : String? = nil
//賦值
name = “a”
//取出可選類型中的值
print(name as Any)
//強制解包 危險操作 如果可選類型爲nil 會崩
print(name!)
//建議強制解包前判斷是否爲nil
if name != nil {
print(name!)
}

//可選綁定 每次用到name都需要先解包
if let tempName = name { // 1.判斷name是否有值 2.如果name有值 系統自動將name解包並賦值給tempName
print(tempName)
}

//常用寫法 就近原則
if let name = name {
print(name)
}

//例子 通過字符串創建url
//let url : NSURL = NSURL(string: “www.xxx.com”) //報錯 因爲後面返回的事可選類型 並不是nsurl 當然你可以不指定類型
let url = NSURL(string: “www.xxx.com奧術大師”);
//let url : NSURL? = NSURL(string: “www.xxx.com”)
//let request : NSURLRequest? = NSURLRequest(url: url! as URL) //非常危險 ,強制解包 當網址有中文的時候 nil 就會崩
if let url = url {
let request = NSURLRequest(url: url as URL)
}

建議Xcode跑跑就知道了 不截圖 爲了方便大家粘貼複製

函數

相當於oc的方法
func 函數名(參數列表)-> 返回值類型{ //(多參數用","分割)
代碼塊
return 返回值
}

//沒有參數 沒有返回值
func about() {
print(“a”)
}
about()

func about1() -> Void {
print(“b”)
}
about1()

//沒有參數 有返回值
func about2() -> String {
print(“c”)
return “d”
}
about2()

//有參數 沒有返回值
func about3(str : String) {
print(str)
}
about3(str: “e”)

func callTel(number : String) {
print(“callTel:” + number)
}
callTel(number: “10086”)

//有參數 有返回值
func sum(num1 : Int, num2 : Int) -> Int {
return num1 + num2
}
sum(num1: 10, num2: 20)

//注意:默認參數 點菜直接做菜 不點菜默認上米飯
func cook(cookName : String = “米飯”) -> String {
return cookName
}
cook(cookName: “肉絲”)
cook()

//注意:可變參數 例如多個數相加
func sumM(num : Int…) -> Int {
var result = 0
for n in num {
result += n
}
return result
}
sumM(num: 10,20,30)
sumM(num:20,30)

var A = 20
var B = 30
func swapNumB(A : Int, B : Int) { //3.0 就在參數中廢棄了var
var A = A
var B = B
let C = A
A = B
B = C
print(“A = (A) B = (B)”)
}
swapNumB(A: A, B: B)
print(“A = (A) B = (B)”)

func swapNum( A : inout Int, B : inout Int) {
let temp = A
A = B
B = temp
}
swapNum(A: &A, B: &B)
print(“A = (A) B = (B)”)

//函數的嵌套使用
func test() {
func test1() {
print(“test1”)
}
print(“test”)
test1()
}
test()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章