在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 函数类型 每个函数都有一个特定的函数类型,由函数的参数类型和返回类型组成。 例如: 1 func addTwoInts(_ a: Int, _ b: Int) -> Int { 2 return a + b 3 } 4 5 func multiplyTwoInts(_ a: Int, _ b: Int) -> Int { 6 return a * b 7 } 这个例子定义了两个简单的数学函数叫做 这两种功能的类型是。这可以理解为: “一个函数有两个参数,都是类型 这是另一个例子,对于没有参数或返回值的函数: 1 func printHelloWorld() { 2 print("hello, world") 3 } 此函数的类型是“或没有参数且返回的函数”。 使用函数类型您可以像使用Swift中的任何其他类型一样使用函数类型。例如,您可以将常量或变量定义为函数类型,并为该变量分配适当的函数: var mathFunction: (Int, Int) -> Int = addTwoInts
这可以理解为: “定义一个名为的变量 该 您现在可以使用以下名称调用已分配的函数 1 print("Result: \(mathFunction(2, 3))") 2 // Prints "Result: 5" 具有相同匹配类型的不同函数可以以与非函数类型相同的方式分配给同一变量: 1 mathFunction = multiplyTwoInts 2 print("Result: \(mathFunction(2, 3))") 3 // Prints "Result: 6" 与任何其他类型一样,在将函数赋值给常量或变量时,可以将其保留为Swift以推断函数类型: 1 let anotherMathFunction = addTwoInts 2 // anotherMathFunction is inferred to be of type (Int, Int) -> Int 函数类型作为参数类型您可以使用函数类型,例如作为另一个函数的参数类型。这使您可以为函数调用者保留函数实现的某些方面,以便在调用函数时提供。 以下是从上面打印数学函数结果的示例: 1 func printMathResult(_ mathFunction: (Int, Int) -> Int, _ a: Int, _ b: Int) { 2 print("Result: \(mathFunction(a, b))") 3 } 4 printMathResult(addTwoInts, 3, 5) 5 // Prints "Result: 8" 此示例定义了一个名为的函数 当 其作用 函数类型作为返回类型您可以使用函数类型作为另一个函数的返回类型。您可以通过 下一个示例定义了两个名为 1 func stepForward(_ input: Int) -> Int { 2 return input + 1 3 } 4 5 func stepBackward(_ input: Int) -> Int { 6 return input - 1 7 } 这是一个名为的函数 1 func chooseStepFunction(backward: Bool) -> (Int) -> Int { 2 return backward ? stepBackward : stepForward 3 } 您现在可以使用 1 var currentValue = 3 2 let moveNearerToZero = chooseStepFunction(backward: currentValue > 0) 3 // moveNearerToZero now refers to the stepBackward() function 上面的示例确定是否需要正或负步骤来移动 现在 1 print("Counting to zero:") 2 // Counting to zero: 3 while currentValue != 0 { 4 print("\(currentValue)... ") 5 currentValue = moveNearerToZero(currentValue) 6 } 7 print("zero!") 8 // 3... 9 // 2... 10 // 1... 11 // zero!
|
请发表评论