Swift learning part 6 - 函数

本文详细介绍了Swift中的函数,包括函数的定义、参数与返回值、无参数和无返回值函数、多重返回值和可选元组类型、隐式返回、参数标签和名称、默认参数值、可变参数、输入输出参数、函数类型、以及嵌套函数的用法。通过这些内容,读者可以全面了解如何在Swift中高效地使用函数。
摘要由CSDN通过智能技术生成

函数是一段完成特定任务的独立代码片段。你可以通过给函数命名来标识某个函数的功能,这个名字可以被用来在需要的时候"调用"这个函数来完成它的任务。

Swift 统一的函数语法非常的灵活,可以用来表示任何函数,包括从最简单的没有参数名字的 C 风格函数,到复杂的带局部和外部参数名的 Objective-C 风格函数。参数可以提供默认值,以简化函数调用。参数也可以既当做传入参数,也当做传出参数,也就是说,一旦函数执行结束,传入的参数值将被修改。

在 Swift 中,每个函数都有一个由函数的参数值类型和返回值类型组成的类型。你可以把函数类型当做任何其他普通变量类型一样处理,这样就可以更简单地把函数当做别的函数的参数,也可以从其他函数中返回函数。函数的定义可以写在其他函数定义中,这样可以在嵌套函数范围内实现功能封装。

函数的定义与调用

当你定义一个函数时,你可以定义一个或多个有名字和类型的值,作为函数的输入,称为参数,也可以定义某种类型的值作为函数执行结束时的输出,称为返回类型。

每个函数有个函数名,用来描述函数执行的任务。要使用一个函数时,用函数名来“调用”这个函数,并传给它匹配的输入值(称作 实参 )。函数的实参必须与函数参数表里参数的顺序一致。

下面例子中的函数用一个人的名字当做输入,并返回向这个人问候的语句。

func greet(person: String) -> String {
   
    let greeting = "Hello, " + person + "!"
    return greeting
}

所有的这些信息汇总起来成为函数的定义,并以 func 作为前缀。指定函数返回类型时,用返回箭头 ->(一个连字符后跟一个右尖括号)后跟返回类型的名称的方式来表示。

该定义描述了函数的功能,它期望接收什么作为参数和执行结束时它返回的结果是什么类型。这样的定义使得函数可以在别的地方以一种清晰的方式被调用。

print(greet(person: "Anna")) // 打印“Hello, Anna!”

为了简化这个函数的定义,可以将问候消息的创建和返回写成一句:

func greetAgain(person: String) -> String {
   
    return "Hello again, " + person + "!"
}
print(greetAgain(person: "Brian")) // 打印“Hello again, Brian!”

函数参数与返回值

无参数函数

func sayHelloWorld() -> String {
   
    return"Hello, world"
}
print(sayHelloWorld())

尽管函数没有参数,但定义中在函数名后还是需要一对圆括号,当被调用时,也需要在函数名后写一对圆括号。

多参数函数

func greet(person: String, alreadyGreeted:Bool) -> String {
   
    if alreadyGreeted {
   
        return "Hello again, \(person)!"
    } else {
   
        return"Hello, \(person)!"
    }
}
print(greet(person: "Tim", alreadyGreeted: true))

无返回值函数

func greet(person: String) {
   
    print("Hello, \(person)!")
}

因为这个函数不需要返回值,所以这个函数的定义中没有返回箭头 -> 和返回类型。严格来说,函数依然返回了一个值,返回了一个特殊的 void 值,它其实是一个空的元组,没有任何元素,写成 ()。

多重返回值函数

可以使用元组类型让多个值作为一个复合值从函数中返回。

下例中定义了一个名为 minMax(array:) 的函数,作用是在一个 Int 类型的数组中找出最小值与最大值:

func minMax(array: [Int]) -> (min: Int, max: Int) {
   
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值