博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift学习笔记(7):函数
阅读量:5282 次
发布时间:2019-06-14

本文共 2310 字,大约阅读时间需要 7 分钟。

目录:

  • 函数参数与返回值
  • 参数标签和参数名称
  • 可变参数
  • 传入传出参数
  • 函数类型
  • 嵌套函数

函数是一段完成特定任务的独立代码片段,使用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 = 3var anotherInt = 107swapTwoInts(&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}

 

声明:该系列内容均来自网络或电子书籍,只做学习总结!

转载于:https://www.cnblogs.com/Youhei/p/6878321.html

你可能感兴趣的文章
[洛谷P1738]洛谷的文件夹
查看>>
ubuntu server设置时区和更新时间
查看>>
【京东咚咚架构演进】-- 好文收藏
查看>>
【HTML】网页中如何让DIV在网页滚动到特定位置时出现
查看>>
文件序列化
查看>>
jQuery之end()和pushStack()
查看>>
Bootstrap--响应式导航条布局
查看>>
Learning Python 009 dict(字典)和 set
查看>>
JavaScript中随着鼠标拖拽而移动的块
查看>>
HDU 1021 一道水题
查看>>
The operation couldn’t be completed. (LaunchServicesError error 0.)
查看>>
php每天一题:strlen()与mb_strlen()的作用分别是什么
查看>>
工作中收集JSCRIPT代码之(下拉框篇)
查看>>
《转载》POI导出excel日期格式
查看>>
code异常处理
查看>>
git - 搭建最简单的git server
查看>>
会话控制
查看>>
推荐一款UI设计软件Balsamiq Mockups
查看>>
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>