区块链技术博客
www.b2bchain.cn

Swift 函数、闭包求职学习资料

本文介绍了Swift 函数、闭包求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

函数

函数的参数命名

// at在这里相当于是参数index的别名为了更好的可读性 func remove(at index: Int){ } remove(at: 0) // _ 可以取消传参时命名 直接传入对应的参数值即可  func append(_ item: Int){ } append(1)

函数类型

函数的类型由函数的参数类型和返回类型组成
如:

func plus(_ a: Int, _ b: Int) -> Int{     return a+b } func multiply(_ a: Int, _ b: Int) -> Int{     return a*b }

这两个函数类型都是 (Int,Int) -> Int
如果是一个无参数无返回值的函数
如:

func sayHi(){     print("Hi !") }

其类型为 () -> Void
既然函数也是一种类型,那么就可以作为变量,参数,返回值使用

// 变量 var mathFunc: (Int,Int) -> Int = plus mathFunc(2,3) // 5   mathFunc = multiply mathFunc(2,3) // 6 // 参数 func printMathResult(_ mathFunc: (Int,Int)-> Int, _ a: Int,_ b: Int){     print("result: (mathFunc(a,b))") } // 返回值 与 嵌套函数 func chooseStepFunction(backward: Bool) -> (Int) -> Int {     func forward(_ input: Int) -> Int {         return input + 1     }     func backward(_ input: Int) -> Int {         return input - 1     }     return backward ? forward : backward }

闭包

闭包是自包含的函数代码块,可以在代码中被传递和使用。 闭包相当于一个匿名函数,我们不需要事先定义好一个函数,然后函数当参数传递,可以直接调用需要使用函数类型作为参数的方法,用闭包语法直接写

例:

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]  func backward(_ s1: String, _ s2: String) -> Bool {     return s1 > s2 } // 函数作为参数传递 let reversedNames = names.sorted(by: backward) // 使用闭包 闭包内声明参数 返回值  let reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in     return s1 > s2 }) // 返回值可以根据 return 自动推断 所以 -> Bool 可以省略 let reversedNames = names.sorted(by: { s1, s2 in return s1 > s2 } ) // 只有一句代码的时候 `return` 可以省略 let reversedNames = names.sorted(by: { s1, s2 in s1 > s2 } ) // Swift 自动为内联闭包提供了参数名称缩写功能,你可以直接通过 $0,$1,$2 来顺序调用闭包的参数,以此类推。 let reversedNames = names.sorted(by: { $0 > $1 } )

闭包无返回值使用Void
一个简单的闭包

 func someFunc( closure: () -> Void ){   print("begin...")   closure()   print("end...") }  someFunc(closure: {   print("hi , hello!") })  // 尾随闭包 闭包表达式是函数或方法的唯一参数,则当你使用尾随闭包时,你甚至可以把 () 省略掉 someFunc {   print("hi , hello!") }

例: 系统 map 和 自己用闭包的知识实现一个简单版本的myMap

let nums = ["V","B","C"]  let ret = nums.map({ "($0)_($0)" })  func myMap(_ items: [Any], transform: (Any) -> Any) -> [Any]{   var results: [Any] = []   for item in items{     let value = transform(item)     results.append(value)   }   return results }  let ret1 = myMap(nums, transform: { "($0)_($0)_($0)" })

函数

函数的参数命名

// at在这里相当于是参数index的别名为了更好的可读性 func remove(at index: Int){ } remove(at: 0) // _ 可以取消传参时命名 直接传入对应的参数值即可  func append(_ item: Int){ } append(1)

函数类型

函数的类型由函数的参数类型和返回类型组成
如:

func plus(_ a: Int, _ b: Int) -> Int{     return a+b } func multiply(_ a: Int, _ b: Int) -> Int{     return a*b }

这两个函数类型都是 (Int,Int) -> Int
如果是一个无参数无返回值的函数
如:

func sayHi(){     print("Hi !") }

其类型为 () -> Void
既然函数也是一种类型,那么就可以作为变量,参数,返回值使用

// 变量 var mathFunc: (Int,Int) -> Int = plus mathFunc(2,3) // 5   mathFunc = multiply mathFunc(2,3) // 6 // 参数 func printMathResult(_ mathFunc: (Int,Int)-> Int, _ a: Int,_ b: Int){     print("result: (mathFunc(a,b))") } // 返回值 与 嵌套函数 func chooseStepFunction(backward: Bool) -> (Int) -> Int {     func forward(_ input: Int) -> Int {         return input + 1     }     func backward(_ input: Int) -> Int {         return input - 1     }     return backward ? forward : backward }

闭包

闭包是自包含的函数代码块,可以在代码中被传递和使用。 闭包相当于一个匿名函数,我们不需要事先定义好一个函数,然后函数当参数传递,可以直接调用需要使用函数类型作为参数的方法,用闭包语法直接写

例:

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]  func backward(_ s1: String, _ s2: String) -> Bool {     return s1 > s2 } // 函数作为参数传递 let reversedNames = names.sorted(by: backward) // 使用闭包 闭包内声明参数 返回值  let reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in     return s1 > s2 }) // 返回值可以根据 return 自动推断 所以 -> Bool 可以省略 let reversedNames = names.sorted(by: { s1, s2 in return s1 > s2 } ) // 只有一句代码的时候 `return` 可以省略 let reversedNames = names.sorted(by: { s1, s2 in s1 > s2 } ) // Swift 自动为内联闭包提供了参数名称缩写功能,你可以直接通过 $0,$1,$2 来顺序调用闭包的参数,以此类推。 let reversedNames = names.sorted(by: { $0 > $1 } )

闭包无返回值使用Void
一个简单的闭包

 func someFunc( closure: () -> Void ){   print("begin...")   closure()   print("end...") }  someFunc(closure: {   print("hi , hello!") })  // 尾随闭包 闭包表达式是函数或方法的唯一参数,则当你使用尾随闭包时,你甚至可以把 () 省略掉 someFunc {   print("hi , hello!") }

例: 系统 map 和 自己用闭包的知识实现一个简单版本的myMap

let nums = ["V","B","C"]  let ret = nums.map({ "($0)_($0)" })  func myMap(_ items: [Any], transform: (Any) -> Any) -> [Any]{   var results: [Any] = []   for item in items{     let value = transform(item)     results.append(value)   }   return results }  let ret1 = myMap(nums, transform: { "($0)_($0)_($0)" })

函数

函数的参数命名

// at在这里相当于是参数index的别名为了更好的可读性 func remove(at index: Int){ } remove(at: 0) // _ 可以取消传参时命名 直接传入对应的参数值即可  func append(_ item: Int){ } append(1)

函数类型

函数的类型由函数的参数类型和返回类型组成
如:

func plus(_ a: Int, _ b: Int) -> Int{     return a+b } func multiply(_ a: Int, _ b: Int) -> Int{     return a*b }

这两个函数类型都是 (Int,Int) -> Int
如果是一个无参数无返回值的函数
如:

func sayHi(){     print("Hi !") }

其类型为 () -> Void
既然函数也是一种类型,那么就可以作为变量,参数,返回值使用

// 变量 var mathFunc: (Int,Int) -> Int = plus mathFunc(2,3) // 5   mathFunc = multiply mathFunc(2,3) // 6 // 参数 func printMathResult(_ mathFunc: (Int,Int)-> Int, _ a: Int,_ b: Int){     print("result: (mathFunc(a,b))") } // 返回值 与 嵌套函数 func chooseStepFunction(backward: Bool) -> (Int) -> Int {     func forward(_ input: Int) -> Int {         return input + 1     }     func backward(_ input: Int) -> Int {         return input - 1     }     return backward ? forward : backward }

闭包

闭包是自包含的函数代码块,可以在代码中被传递和使用。 闭包相当于一个匿名函数,我们不需要事先定义好一个函数,然后函数当参数传递,可以直接调用需要使用函数类型作为参数的方法,用闭包语法直接写

例:

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]  func backward(_ s1: String, _ s2: String) -> Bool {     return s1 > s2 } // 函数作为参数传递 let reversedNames = names.sorted(by: backward) // 使用闭包 闭包内声明参数 返回值  let reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in     return s1 > s2 }) // 返回值可以根据 return 自动推断 所以 -> Bool 可以省略 let reversedNames = names.sorted(by: { s1, s2 in return s1 > s2 } ) // 只有一句代码的时候 `return` 可以省略 let reversedNames = names.sorted(by: { s1, s2 in s1 > s2 } ) // Swift 自动为内联闭包提供了参数名称缩写功能,你可以直接通过 $0,$1,$2 来顺序调用闭包的参数,以此类推。 let reversedNames = names.sorted(by: { $0 > $1 } )

闭包无返回值使用Void
一个简单的闭包

 func someFunc( closure: () -> Void ){   print("begin...")   closure()   print("end...") }  someFunc(closure: {   print("hi , hello!") })  // 尾随闭包 闭包表达式是函数或方法的唯一参数,则当你使用尾随闭包时,你甚至可以把 () 省略掉 someFunc {   print("hi , hello!") }

例: 系统 map 和 自己用闭包的知识实现一个简单版本的myMap

let nums = ["V","B","C"]  let ret = nums.map({ "($0)_($0)" })  func myMap(_ items: [Any], transform: (Any) -> Any) -> [Any]{   var results: [Any] = []   for item in items{     let value = transform(item)     results.append(value)   }   return results }  let ret1 = myMap(nums, transform: { "($0)_($0)_($0)" })

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Swift 函数、闭包求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们