Swift学习文档记录(一)函数
来源:互联网 发布:mac输入法标点符号 编辑:程序博客网 时间:2024/04/30 06:14
1.多重输入参数:函数可以有多个输入参数,写在圆括号中,用逗号分隔。
func halfOpenRangeLength(start: Int, end: Int) -> Int {
return end - start
}
2.无参函数:函数可以没有参数
func sayHelloWorld() -> String {
return "hello, world"
}
3.多参量函数:函数可以有多种输入参数,这写参数被包含在函数的括号之中,以逗号分隔.
func sayHello(personName: String, alreadyGreeted: Bool) -> String {
if alreadyGreeted {
return sayHelloAgain(personName)
} else {
return sayHello(personName)
}
}
4.无返回值函数:没有定义返回类型的函数会返回特殊的值,叫 Void
func sayGoodbye(personName: String) {
print("Goodbye, \(personName)!")
}
5.多重返回值函数:可以用元组(tuple)类型让多个值作为一个复合值从函数中返回。
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)
}
6.指定外部参数名:你可以在本地参数名前指定外部参数名,中间以空格分隔.
func sayHello(to person: String, and anotherPerson: String) -> String {
return "Hello \(person) and \(anotherPerson)!"
}
print(sayHello(to: "Bill", and: "Ted"))
7.忽略外部参数名:不想为第二个及后续的参数设置参数名,用一个下划线(_)代替一个明确地参数名.
func someFunction(firstParameterName: Int, _ secondParameterName: Int) {
// function body goes here
// firstParameterName and secondParameterName refer to
// the argument values for the first and second parameters
}
someFunction(1, 2)
8. 默认参数值:在函数体中为每个参数定义默认值(Deafult Values)。当默认值被定义后,调用这个函数时可以忽略这个参数。
func someFunction(parameterWithDefault: Int = 12) {
// function body goes here
// if no arguments are passed to the function call,
// value of parameterWithDefault is 42
}
someFunction(6) // parameterWithDefault is 6
someFunction() // parameterWithDefault is 12
9.可变参数:一个可变参数(variadic parameter)可以接受零个或多个值。函数调用时,你可以用可变参数来传入不确定数量的输入参数。通过在变量类型名后面加入(...)的方式来定义可变参数。
传入可变参数的值在函数体内当做这个类型的一个数组。例如,一个叫做 numbers 的 Double... 型可变参数,在函数体内可以当做一个叫 numbers 的 Double[] 型的数组常量。
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)
10.常量参数和变量参数:函数参数默认是常量。试图在函数体中更改参数值将会导致编译错误。变量参数不是常量,你可以在函数中把它当做新的可修改副本来使用.
func alignRight(var string: String, totalLength: Int, pad: Character) -> String {
let amountToPad = totalLength - string.characters.count
if amountToPad < 1 {
return string
}
let padString = String(pad)
for _ in 1...amountToPad {
string = padString + string
}
return string
}
let originalString = "hello"
let paddedString = alignRight(originalString, totalLength: 10, pad: "-")
11.输入输出参数:一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数.定义一个输入输出参数时,在参数定义前加 inout 关键字。一个输入输出参数有传入函数的值,这个值被函数修改,然后被传出函数,替换原来的值。
你只能将变量作为输入输出参数。你不能传入常量或者字面量(literal value),因为这些量是不能被修改的。当传入的参数作为输入输出参数时,需要在参数前加&符,表示这个值可以被函数修改。
func swapTwoInts(inout a: Int, inout _ b: Int) {
let temporaryA = a
a = b
b = temporaryA
}
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
12. 嵌套函数:嵌套函数是对外界不可见的,但是可以被他们封闭函数(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 = -4
let moveNearerToZero = chooseStepFunction(currentValue > 0)
0 0
- Swift学习文档记录(一)函数
- swift 学习记录(一)
- Swift学习记录(一)
- swift学习记录(函数)
- swift 2.0官方文档学习记录
- swift学习记录(函数--嵌套函数)
- swift学习一:介绍,开发文档下载
- swift学习记录(函数--输入输出参数)
- Swift学习记录 -- 18. 便利构造函数
- swift学习之函数(一)
- swift学习笔记之函数(一)
- Swift学习记录 -- 11.函数的基本使用
- swift 学习 记录
- Swift学习感悟记录
- swift学习记录(enumerate)
- Swift 学习记录--2
- Swift 学习记录
- MATLAB学习笔记 函数记录(一)
- 综合运用BroadcastReceiver和Service模拟下载
- Ubuntu14.04增加右键菜单=>“run_on_sh”
- 软件杂谈《四》
- 黑马程序员——C语言——数组
- HDU1597 - find the nth digit (找规律)
- Swift学习文档记录(一)函数
- Max Sum--hdoj 1003 dp
- Rime 协议栈缓冲区 packetbuf
- 正则表达式
- 文章标题
- Callable和Future 的学习
- 理解中国剩余定理
- mysql 学习疑问: sql语句关键字选项之间的顺序关系???
- def文件 导出dll重载函数