swift2 函数
来源:互联网 发布:淘宝买家号权重是什么 编辑:程序博客网 时间:2024/05/20 18:01
函数的定义与调用
func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting}print(sayHello("Anna"))// prints "Hello, Anna!"print(sayHello("Brian"))// prints "Hello, Brian!"
可变参数
func arithmeticMean(numbers: Double...) -> Double { var total: Double = 0 for number in numbers { total += number } return total / Double(numbers.count)}arithmeticMean(1, 2, 3, 4, 5)// returns 3.0, which is the arithmetic mean of these five numbersarithmeticMean(3, 8, 19)// returns 10.0, which is the arithmetic mean of these three numbers
一个可变参数(variadic parameter)可以接受一个或多个值。
函数调用时,你可以用可变参数来传入不确定数量的输入参数。通过在变量类型名后面加入(...)的方式来定义可变参数。
传入可变参数的值在函数体内当做这个类型的一个数组。
传入可变参数的值在函数体内当做这个类型的一个数组。
例如,一个叫做 numbers 的 Double... 型可变参数,在函数体内可以当做一个叫 numbers 的 Double[] 型的数组常量。
常量参数和变量参数
函数参数默认是常量。试图在函数体中更改参数值将会导致编译错误。这意味着你不能错误地更改参数值。
但是,有时候,如果函数中有传入参数的变量值副本将是很有用的。
但是,有时候,如果函数中有传入参数的变量值副本将是很有用的。
你可以通过指定一个或多个参数为变量参数,从而避免自己在函数中定义新的变量。
变量参数不是常量,你可以在函数中把它当做新的可修改副本来使用。
输入输出参数
为了实现在函数中修改传入的值,不仅仅改副本还要修改原值,可以将变量声明为输入输出参数
func swapTwoInts(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoInts(&someInt, b: &anotherInt)print("someInt is now \(someInt), and anotherInt is now \(anotherInt)")// prints "someInt is now 107, and anotherInt is now 3”
嵌套函数
这章中你所见到的所有函数都叫全局函数(global functions),它们定义在全局域中。
你也可以把函数定义在别的函数体中,称作嵌套函数(nested functions)。
默认情况下,嵌套函数是对外界不可见的,但是可以被他们封闭函数(enclosing function)来调用。
默认情况下,嵌套函数是对外界不可见的,但是可以被他们封闭函数(enclosing function)来调用。
一个封闭函数也可以返回它的某一个嵌套函数,使得这个函数可以在其他域中被使用。
func chooseStepFunction(backwards: Bool) -> (Int) -> Int { func stepForward(input: Int) -> Int { return input + 1 } func stepBackward(input: Int) -> Int { return input - 1 } return backwards ? stepBackward : stepForward}var currentValue = -4let moveNearerToZero = chooseStepFunction(currentValue > 0)// moveNearerToZero now refers to the nested stepForward() functionwhile currentValue != 0 { print("\(currentValue)... ") currentValue = moveNearerToZero(currentValue)}print("zero!")// -4...// -3...// -2...// -1...// zero!
0 0
- swift2 函数
- swift2 运算符函数
- Swift2中的标准函数
- Swift2-0基础_Functions(函数)
- swift2
- Swift2.2 学习笔记(十三) ___函数
- Swift2.0语言教程之Swift2.0语言中的标准函数
- Swift2.0语言教程之函数嵌套调用形式
- Swift2学习:Swift概览3-函数和闭包
- Swift2.0在Xcode7下函数重载问题
- 《swift2.0 官方教程中文版》 第2章-06函数
- Swift2.2 学习笔记(三) ___函数和闭包
- swift2.x不能使用函数重载的问题
- 自定义数据类型 --- 继承和构造函数(swift2.3)
- Swift2.0语言教程之函数的返回值与函数类型
- Swift2.2
- swift2.0
- swift2 optionals
- 网络访问框架XUtils
- Linux驱动基础总结
- 【Ray Tracing from Ground Up】光源(Lights)
- mybatis Example Criteria like 模糊查询
- JavaScript和Java的区别
- swift2 函数
- .NET方法中参数过多的解决方法
- No mapping found for HTTP request with URI [/MessBoard/login/images/bg_1.jpg] in DispatcherServlet w
- 比如对 姓名字段,可以同时查询两个姓名的记录
- java并发编程——共享资源的操作
- 初识animate()
- HDU-1728逃离迷宫
- codevs1012
- 移动端Web上传图片实践