Swift

Swift——3、函数

2019-08-04  本文已影响0人  天空像天空一样蓝

函数的定义

Demo

定义

v1 、v2:参数
Double Int 返回值

无返回值

无返回值

隐式返回

隐式返回

返回元组:实现多返回值

返回元组

函数的文档注释

注释

参数标签

参数标签

默认参数值

默认参数值 图片.png

可变参数

可变参数 不能省略参数标签

Swift自带的print函数

print函数

输入输出函数

// 利用中间量交换两个值
func swapValues(_ v1: inout Int, _ v2: inout Int) {
    let tmp = v1
    v1 = v2
    v2 = tmp
}

var num1 = 10
var num2 = 20
swapValues(&num1, &num2)

//利用元祖交换两个值
func swapValues(_ v1: inout Int, _ v2: inout Int) {
    (v1, v2) = (v2, v1)
}

//在内部修改外部的值
var number = 10

func add(_ num: inout Int) {
    num = 20
}

add(&number)

print(number)

函数重载

函数重载 返回值类型 二义性 报错

内联函数

图片.png
func test() {
    print("test")
}

test() // 在此打断点,运行代码,会发现,”test“已经被打印出来
//永远不会被内联(即使开启了编译器优化)
@inline(never) func test() {
    print("test")
}

//开启编译器优化后,即使代码很长,也会被内联(递归调用函数、动态派发的函数除外)两个下划线
@inline(__always) func test() {
    print("test")
}

函数类型

func test() {} // () -> Void 或者 ()-> ()

func sum(a: Int, b: Int) -> Int {
    a+b
} // (Int, Int) -> Int

//定义变量
var fn:(Int, Int) -> Int = sum()
fn(2, 3) // 5,调用c时不需要参数标签

作为函数参数 作为函数返回值

_ forward: Bool 是参数
-> (Int) -> Int 是返回值

typealias 别名

typealias

嵌套函数

嵌套函数
上一篇下一篇

猜你喜欢

热点阅读