在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
目录:
函数是一段完成特定任务的独立代码片段,使用func标示函数名,使用->标示返回类型。 ・可以为函数参数设置默认值,以简化函数调用 ・函数参数具有传入传出特性 ・函数类型由函数的参数值类型和返回值类型唯一标定,与变量一样可以作为函数参数或返回值 ・函数可以嵌套封装定义在其他函数体中,且可以作为返回值返回函数 func greet(person: String) -> String { let greeting = "Hello, " + person + "!" return greeting }
函数参数与返回值// 无返回值函数 func greet(person: String) { print("Hello, \(person)!") } // 无参函数 func sayHelloWorld() -> String { return "hello, world" } // 多参有返回值函数 func minMax(array: [Int]) -> (min: Int, max: Int) { // logic codes return (currentMin, currentMax) } // 返回可选参数 func minMax(array: [Int]) -> (min: Int, max: Int)? { // return nil 条件不满足时返回nil return (currentMin, currentMax) }
参数标签和参数名称每个函数参数都有一个标签和名称。参数标签在函数调用时外部使用,写在实参前。参数名称在函数体内使用,默认情况下函数使用名称作为标签。 // 具有函数参数标签和名称 func someFunction(argumentLabel parameterName: Int) { // 在函数体内,parameterName 代表参数值 } // 没有函数参数标签,内外部都是用参数名称 func someFunction(parameterName: Int) { // 在函数体内,parameterName 代表参数值 } // 省略函数参数标签,外部调用函数时可以在实参前省略参数标签 func someFunction(_ parameterName: Int) { // 在函数体内,parameterName 代表参数值 } // 具有默认值的函数参数 func someFunction(parameterWithoutDefault: Int, parameterWithDefault: Int = 12) { // 函数调用时不传参数2,parameterWithDefault值以12传入。 } someFunction(parameterWithoutDefault: 3, parameterWithDefault: 6) someFunction(parameterWithoutDefault: 4)
可变参数可变参数可以接受0个或多个值,且一个函数有且仅有一个可变参数。 func arithmeticMean(_ numbers: Double...) -> Double { var total: Double = 0 for number in numbers { total += number } return total / Double(numbers.count) }
传入传出参数可以使用inout标示一个函数参数为传入传出参数类型,可变参数(Int...)和常量不能作为输入输出参数。变量作为输入输出实参时需要前加 & 。 var someInt = 3 var anotherInt = 107 swapTwoInts(&someInt, &anotherInt)
函数类型Swift语言中函数类型可以像其他类型一样定义变量和常量。 var mathFunction: (Int, Int) -> Int = addTwoInts
函数类型作为参数和返回值: func printMathResult(_ mathFunction: (Int, Int) -> Int, _ a: Int, _ b: Int) { print("Result: \(mathFunction(a, b))") } func chooseStepFunction(backward: Bool) -> (Int) -> Int { return backward ? stepBackward : stepForward }
嵌套函数func chooseStepFunction(backward: Bool) -> (Int) -> Int { func stepForward(input: Int) -> Int { return input + 1 } func stepBackward(input: Int) -> Int { return input - 1 } return backward ? stepBackward : stepForward }
声明:该系列内容均来自网络或电子书籍,只做学习总结! |
请发表评论