import Foundation
// 闭包:闭包的本质-匿名函数(没有名字的函数)就是一个能完成特定功能的代码块
//写一个求和函数
func sum(num1:Int,num2:Int)->Int{return num1 + num2}
/* (Int, Int)->(Int) */let biBao:( (Int, Int)->(Int) )biBao = { (num1:Int, num2:Int)->(Int) in return num1 + num2}
//调用闭包let result = biBao(1,2)print(result)
//无参数无返回值的闭包
//OC return作用: 1:返回一个值 2:提前结束一个函数
//()->(Void) 无参无返的闭包类型
let b1:(()->(Void)) = { ()->(Void) in
print("无参无返的闭包类型")}b1()//无参数有返回值的闭包类型
//() -> (Int)let b2:(() -> (Int)) = { () -> (Int) in return 10}print( b2() )
//有参数有返回值闭包类型
//() -> (Int)var b3:( (Int,Int)->(Int) ) = { (n:Int,m:Int)->(Int) in
return n + m}print(b3(1,5))b3 = { (a:Int,b:Int)->(Int) in return a - b}print( b3(10,5) )b3 = { (i:Int,j:Int)->(Int) in return i * j}
print(b3(2,3))
//闭包类型的变量,不止能存储一个代码块,而是能存储和变量类型一致的所有代码块
//有参数无返回值闭包类型//比较两个数最大值并把两个值输出的闭包
let b4:((Int,Int) -> (Void)) = { (x:Int,y:Int) -> (Void) in print(x > y ? x : y)
//三步运算符}b4(10,13)var arr = ["zhangsan","lisi","yifeng","mazi","xiaofan"]
//可变数组 两种排序方式都可以使用,不可变的只能用sorted
//arr.sort()
//arr.sorted()
//升序排//arr.sort()
//print(arr)arr.sort { (str1:String, str2:String) -> Bool in
// 比较条件大于,得出的结果是降序
// 比较条件是小于,得出的结果是升序
return str1 > str2}print(arr)//泛型 (了解)func printContent(something:T){
//T的位置随便定义
print(something)
}
printContent(something: "12345")
printContent(something: 1)
printContent(something: 1.22)
网友评论