Swift快速入门(九)

48 阅读2分钟

函数

函数是一段完成特定任务的独立代码片段。每个函数都有一个由函数的参数值类型和返回值类型组成的类型。

函数的定义与调用
func test1(){
  print("------test1------")
}

test1();

// 打印“------test1------”
函数的参数
  • 无参数有返回值
func test2() ->Int{
 return 10
}

print("----test2-----\(test2())")
//打印“----test2-----10”
  • 带参数有返回值
func test3(name:String) ->String{
 return name
}
print("------test3------\(test3(name:"Willem"))")
//打印“----test3-----Willem”
  • 多个返回值函数
//定义了一个名为minMax(_:)的函数,作用是在一个Int数组中找出最小值与最大值。

import Cocoa
func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

let bounds = minMax([8, -6, 2, 109, 3, 71])
print("最小值为 (bounds.min) ,最大值为 (bounds.max)")

//打印“最小值为 -6 ,最大值为 109”
函数参数名称

函数参数都有一个外部参数名和一个局部参数名。

func test6(outname inname:String){
 //outname : 函数实际参数标签(外部名称) inname:形式参数(内部名称)
 print("------test6------")
 print("inname = \(inname)")
}
  • 可变参数
//可变参数可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数,其数量是不确定的。
//可变参数通过在变量类型名后面加入(...)的方式来定义。

import Cocoa

func test7<N>(members: N...){
    for i in members {
        print(i)
    }
}
test7(4,3,5)
test7(4.5, 3.1, 5.6)
test7("A", "B", "C")

一般默认的参数传递都是传值调用的,而不是传引用。所以传入的参数在函数内改变,并不影响原来的那个参数。传入的只是这个参数的副本。

当传入的参数作为输入输出参数时,需要在参数名前加&符号,表示这个值可以被函数修改。

func swapTwoInts(_ainout Int_binout Int) {
    let temporaryA = a
    a = b
    b = temporaryA
}
var x = 1
var y = 5
swapTwoInts(&X&y)
print("x 现在的值(x),y 现在的值(y)")