美文网首页
iOS-swift4学习(函数)

iOS-swift4学习(函数)

作者: 木马不在转 | 来源:发表于2018-07-17 10:56 被阅读241次
  1. 忽略参数标签 _ xx: xxx
func greet(_ name:String) ->String{
    
    return "hello,\(name)"
}
let kname = greet("jack")
  1. 设置默认参数值
func someFunction(parameterWithoutDefault: Int, parameterWithDefault: Int = 2 ){
     如果你在调用时候不传第二个参数,parameterWithDefault 会值为 12 传入到函数体中。
}
  1. 可变参数 一个函数最多只能拥有一个可变参数。
func arithmeticMean(_ numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}
print(arithmeticMean(1,2,3))
  1. 输入输出参数 函数修改变量 - inout
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
    let temporaryA = a
    a = b
    b = temporaryA
}
var height = 120
var width = 60
swapTwoInts(&height, &width)
// height = 60, width = 120
  1. 函数类型作为返回类型
func stepBackward(_ input: Int) -> Int {
    return input - 1
}
func stepForward(_ input: Int) -> Int {
    return input + 1
}
func chooseStepFunction(backward: Bool) -> (Int) -> Int {
    return backward ? stepBackward : stepForward
}
  1. 闭包表达式语法
let blockHs = {(s1:String, s2:String) ->Bool in

    return s1.count > s2.count
}
  1. 尾随闭包
func someFunctionThatTakesAClosure(closure: () -> Void) {
    // 函数体部分
}
/*以下是不使用尾随闭包进行函数调用*/
someFunctionThatTakesAClosure(closure: {
    // 闭包主体部分
})

/*以下是使用尾随闭包进行函数调用*/
someFunctionThatTakesAClosure() {
    // 闭包主体部分
}
  1. 逃逸闭包 - @escaping
var completionHandlers: [() -> Void] = []
func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) {
    completionHandlers.append(completionHandler)
}
  1. 自动闭包 自动闭包让你能够延迟求值
var customersInLine = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
let customerProvider = { customersInLine.remove(at: 0) }
print(customersInLine.count) // 打印出 5
customerProvider() // 执行
print(customersInLine.count) // 打印出 4
  1. 将闭包作为参数传递给函数时
func serve(customer customerProvider: () -> String) {
    print("Now serving \(customerProvider())!")
}
serve(customer: {customersInLine.remove(at: 0) })
 // 打印出 "Now serving Alex!"
  1. 将参数标记为 @autoclosure 来接收一个自动闭包
func serveE(customer customerProvider: @autoclosure () -> String) {
    print("Now serving \(customerProvider())!")
}
serveE(customer: customersInLine.remove(at: 0))
  1. 泛型函数
func swapTwoValues<T>(_ a: inout T, _ b: inout T){
    
    let temporaryA = a
    a = b
    b = temporaryA
}
  1. 枚举语法
enum CompassPoint {
    case north
    case south
    case east
    case west
}
var directionToHead = CompassPoint.west

swift学习电梯:
swift-基础类型
swift-函数
swift-类和结构体

swift

相关文章

  • iOS-swift4学习(函数)

    忽略参数标签 _ xx: xxx 设置默认参数值 可变参数 一个函数最多只能拥有一个可变参数。 输入输出参数 ...

  • iOS-swift4学习(基础类型)

    一:字符串知识点 字符穿插输出 类型别名 赋值一个新的类型名 函数错误处理 - throws 断言进行调试 & ...

  • iOS-swift4学习(类和结构体)

    类和结构体示列 属性观察器 willSet 在新的值被设置之前调用观察器会将新的属性值作为常量参数传入,在 wil...

  • 烧脑必备品之函数基础篇

    函数与公式 今天学习函数的基础知识,先认识函数,再学习函数,之后再了解并运用函数 今天仅仅只是学习了函数的基础知识...

  • 三. PHP与MySQL关系大揭秘

    PHP内置MySQL函数学习(1) PHP内置MySQL函数学习(2) PHP内置MySQL函数学习(2)

  • 2019-11-24 E战到底DAY22 第三个复盘日

    继续学习函数 本周主要是继续学习函数,同时引入了数据透视表。在本周的函数学习开始就引入了函数群的概念。函数群是一组...

  • Python精简学习(九)

    Python精简学习之函数之匿名函数-匿名函数

  • 学习函数

    今天开始学习函数,函数就是预先定义好了的公式。 ①数组运算:用一个公式运算累计的销售额,sum(选中数据区域E2:...

  • 查找函数Vlookup Hlookup Index

    今天的课程继续学习的函数。今天学习的函数是查找函数Vlookup Hlookup Index。 Vlookup是我...

  • 二次函数

    到初中之后我们学习了各种函数,比如我们学习的正比例函数,再到初二学习的一次函数,还有初三学习的反比例函数等等。 我...

网友评论

      本文标题:iOS-swift4学习(函数)

      本文链接:https://www.haomeiwen.com/subject/juhwpftx.html