iOS学习

Swift 2.0-Study(二)

2016-06-01  本文已影响37人  Restar

函数:

  1. 没有定义返回类型的函数会返回特殊的值,叫 Void。它其实是一个空的元组(tuple), 没有任何元素,可以写成()
  2. 函数的参数名称
    func someFunction(externalParameterName parameterName: Int) {
    // function body goes here, and can use parameterName
    // to refer to the argument value for that parameter
    }
  1. parameterName 仅在函数体中使用,不能再函数调用时使用。这种类型的参数被称作局部参数名(local parameter name),因为它们只能在函数体中使用
  2. externalParameterName 如果你希望函数调用者在调用函数时提供参数名字,那就要个哦每个参数除了局部参数名外再定义一个外部参数名。
    简写外部参数名:局部参数名前加 # 作为前缀,告诉 Swift 使用这个参数名作为局部和外部参数名
    默认参数值:你可以在函数体中为每个参数定义默认值。当默认值被定义后,调用这个函数时可以忽略这个参数。
    默认值参数的外部参数名:为了使定义外部参数名更加简单,当你未给带默认值的参数提供外部参数名时,Swift 会自动提供外部名字。此时外部参数名与局部名字是一样的,就像你已经在局部参数名前写了井号(#)一样。
    你可以使用下划线()作为默认值参数的外部参数名,这样可以在调用时不用提供外部参数名。由于某些函数的第一个参数默认省略了外部参数名,显示的写()是多余的。
    可变参数:通过在变量类型名后面加入(...)的方式来定义可变参数。
    注意: 一个函数至多能有一个可变参数,而且它必须是参数表中最后的一个。这样做是为了避免函数调用时出现歧义。
  1. 输入输出参数
    如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。
    定义一个输入输出参数时,在参数定义前加 inout 关键字。一个输入输出参数有传入函数的值,这个值被函数修改,然后被传出函数,替换原来的值。
    你只能将变量作为输入输出参数。你不能传入常量或者字面量(literal value),因为这些量是不能被修改的。当传入的参数作为输入输出参数时,需要在参数前加&符,表示这个值可以被函数修改。
  2. 闭包:
    闭包可以捕获和存储其所在上下文中任意常量和变量的引用。 这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。
    闭包表达式是一个利用轻量级语法所写的可以捕获其上下文中变量或常量值的匿名闭包
    闭包的函数体部分由关键字in引入。 该关键字表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始。
    如果您在闭包表达式中使用参数名称缩写,您可以在闭包参数列表中省略对其的定义,并且对应参数名称缩写的类型会通过函数类型进行推断。 in关键字也同样可以被省略,因为此时闭包表达式完全由闭包函数体构成
    运算符函数:
上一篇下一篇

猜你喜欢

热点阅读