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

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