函数是执行特定任务的代码自包含块。给定一个函数名称标识, 当执行其任务时就可以用这个标识来进行"调用"。
Swift的统一的功能语法足够灵活来表达任何东西,无论是甚至没有参数名称的简单的C风格的函数表达式,还是需要为每个本地参数和外部参数设置复杂名称的Objective-C语言风格的函数。参数提供默认值,以简化函数调用,并通过设置在输入输出参数,在函数执行完成时修改传递的变量。
Swift中的每个函数都有一个类型,包括函数的参数类型和返回类型。您可以方便的使用此类型像任何其他类型一样,这使得它很容易将函数作为参数传递给其他函数,甚至从函数中返回函数类型。函数也可以写在其他函数中来封装一个嵌套函数用以范围内有用的功能。
函数的声明与调用
当你定义一个函数时,你可以为其定义一个或多个命名,定义类型值作为函数的输入(称为参数),当该函数完成时将传回输出定义的类型(称为作为它的返回类型)。
每一个函数都有一个函数名,用来描述了函数执行的任务。要使用一个函数的功能时,你通过使用它的名称进行“调用”,并通过它的输入值(称为参数)来匹配函数的参数类型。一个函数的提供的参数必须始终以相同的顺序来作为函数参数列表。
例子:
//没有参数,没有返回值的函数 func helloworld() { println("helloworld") } helloworld() //有参数没有返回值的函数 func printStr(Str:NSString!) { println(Str) } printStr("123456") //带有参数和返回值的函数 func add(One:Int,Two:Int)->Int { return One + Two } println("1+2 = \(add(1,2))") //可变参数 func addAllNumbers(Numbers:Int ...)->Int { var sum:Int = 0 for i in Numbers { sum += i } return sum } //参数有默认值 func statentmentStr(name:NSString!,fstr:NSString = "我的名字是:") { println(fstr+name) } statentmentStr("xiami") //看到帖子问,参考类型作为参数会不会变化 class a { var value:Int = 1 } var aa = a() func changeClass(item:a) { item.value = 10 } changeClass(aa) aa //由此可见参考类型作为函数的参数是可以变化的 //输入输出类型 func swapTwoValue(inout firstValue one:Int,inout two:Int) { let value = one one = two two = value } var one:Int = 10 var two:Int = 20 swapTwoValue(firstValue: &one, &two) one two //上例子中 firstValue 为外部参数名字 个人理解,相当于描述吧,在外部调用的时候能知道这个参数是干什么用的
时间: 2024-10-06 09:32:14