Swift-函数

使用 func 来声明一个函数。-> 后面的是函数的返回类型,举个栗子

func greet(name: String, day: String) -> String {
    return "Hello \(name), today is \(day)."
}
greet("Bob", day: "Tuesday") // 输出结果为 Hello Bob, today is Tuesday.


如果是重写一个已有的函数要在前面加 override,比如假设我们现在正在写一个自定义的 controller:

override func viewDidLoad() {
    super.viewDidLoad()
    // do something
}


在 C 语言里函数最多只能返回一个值,但是在 Swift 中通过使用元组,函数可以返回多个值(挺好)。举个栗子

func calculateStatistics(scores: [Int]) -> (min: Int, max: Int, sum: Int) {
    var min = scores[0] // 记录最小值
    var max = scores[0] // 记录最大值
    var sum = 0 // 记录累加和
    for score in scores {
        if score > max {
            max = score
        } else if score < min {
            min = score
        }
        sum += score
    }
    return (min, max, sum)
}
let statistics = calculateStatistics([3, 2, 1, 4, 5])
print(statistics.min, statistics.max, statistics.sum) // 元组可以通过名称访问
print(statistics.0, statistics.1, statistics.2) // 也可以通过下标访问,输出结果都是 1 5 15
解释一下,这个函数只有一个参数,这个参数是一个数组,数组内的元素都是 int 类型的。

函数的返回值类型是元组,元组中有三个元素,分别是最小值、最大值、累加和,都是 int 类型的。

函数的作用就是求出指定数组内元素的最小值、最大值、累加和。

这样一个函数,放在 C 语言里要写成三个函数。。。囧


函数可以有可变个数的参数,用 ... 表示。OC 里也有这个,但是在混编的时候我弄不明白 Swift 里的可变参数了。原来这些可变参数在函数内表现为数组的形式:

func sumOf(numbers: Int...) -> Int {
    var sum = 0
    for number in numbers {
        sum += number
    }
    return sum
}
sumOf() // 输出结果为 0
sumOf(4, 1, 2) // 输出结果为 7

func appendString(strings: String...) -> String {
    var str = ""
    for string in strings {
        str = str.stringByAppendingString(string)
    }
    return str
}
appendString() // 输出结果为 空
appendString("He", "llo", ", ", "b", "oy!") // 输出结果为 Hello, boy!
在第一个栗子中,参数是 numbers。numbers 是一个数组名,它内部的元素是 int 类型的。作用是返回数组内元素的累加和。

在第二个栗子中,参数是 strings。strings 是一个数组名,它内部的元素是 String 类型的。作用是返回数组内元素的拼接结果。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值