当前位置:K88软件开发文章中心编程语言APP编程Swift01 → 文章内容

Swift 函数

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:31:10

定的。可变参数通过在变量类型名后面加入(...)的方式来定义。import Cocoafunc vari<N>(members: N...){ for i in members { print(i) }}vari(members: 4,3,5)vari(members: 4.5, 3.1, 5.6)vari(members: "Google", "Baidu", "Runoob")以上程序执行输出结果为:4354.53.15.6GoogleBaiduRunoob常量,变量及 I/O 参数一般默认在函数中定义的参数都是常量参数,也就是这个参数你只可以查询使用,不能改变它的值。如果想要声明一个变量参数,可以在参数定义前加 inout 关键字,这样就可以改变这个参数的值了。例如:func getName(_ name: inout String).........此时这个 name 值可以在函数中改变。一般默认的参数传递都是传值调用的,而不是传引用。所以传入的参数在函数内改变,并不影响原来的那个参数。传入的只是这个参数的副本。当传入的参数作为输入输出参数时,需要在参数名前加 & 符,表示这个值可以被函数修改。实例import Cocoafunc swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA}var x = 1var y = 5swapTwoInts(&x, &y)print("x 现在的值 \(x), y 现在的值 \(y)")swapTwoInts(_:_:) 函数简单地交换 a 与 b 的值。该函数先将 a 的值存到一个临时常量 temporaryA 中,然后将 b 的值赋给 a,最后将 temporaryA 赋值给 b。需要注意的是,someInt 和 anotherInt 在传入 swapTwoInts(_:_:) 函数前,都加了 & 的前缀。以上程序执行输出结果为:x 现在的值 5, y 现在的值 1函数类型及使用每个函数都有种特定的函数类型,由函数的参数类型和返回类型组成。func inputs(no1: Int, no2: Int) -> Int { return no1/no2}inputs 函数类型有两个 Int 型的参数(no1、no2)并返回一个 Int 型的值。实例如下:import Cocoafunc inputs(no1: Int, no2: Int) -> Int { return no1/no2}print(inputs(no1: 20, no2: 10))print(inputs(no1: 36, no2: 6))以上程序执行输出结果为:26以上函数定义了两个 Int 参数类型,返回值也为 Int 类型。接下来我们看下如下函数,函数定义了参数为 String 类型,返回值为 String 类型。func inputstr(name: String) -> String { return name}函数也可以定义一个没有参数,也没有返回值的函数,如下所示:import Cocoafunc inputstr() { print("k88.net") print("www.k88.net")}inputstr()以上程序执行输出结果为:k88.netwww.k88.net使用函数类型在 Swift 中,使用函数类型就像使用其他类型一样。例如,你可以定义一个类型为函数的常量或变量,并将适当的函数赋值给它:var addition: (Int, Int) -> Int = sum解析:"定义一个叫做 addition 的变量,参数与返回值类型均是 Int ,并让这个新变量指向 sum 函数"。sum 和 addition 有同样的类型,所以以上操作是合法的。现在,你可以用 addition 来调用被赋值的函数了:import Cocoafunc sum(a: Int, b: Int) -> Int { return a + b}var addition: (Int, Int) -> Int = sumprint("输出结果: \(addition(40, 89))")以上程序执行输出结果为:输出结果: 129函数类型作为参数类型、函数类型作为返回类型我们可以将函数作为参数传递给另外一个参数:import Cocoafunc sum(a: Int, b: Int) -> Int { return a + b}var addition: (Int, Int) -> Int = sumprint("输出结果: \(addition(40, 89))")func another(addition: (Int, Int) -> Int, a: Int, b: Int) { print("输出结果: \(addition(a, b))")}another(addition: sum, a: 10, b: 20)以上程序执行输出结果为:输出结果: 129输出结果: 30函数嵌套函数嵌套指的是函数内定义一个新的函数,外部的函数可以调用函数内定义的函数。实例如下:import Cocoafunc calcDecrement(forDecrement total: Int) -> () -> Int { var overallDecrement = 0 func decrementer() -> Int { overallDecrement -= total return overallDecrement } return decrementer}let decrem = calcDecrement(forDecrement: 30)print(decrem())以上程序执行输出结果为:-30

上一页  [1] [2] 


Swift 函数