Swift学习总结 - 2

2023-01-04  本文已影响0人  恩莱客
  1. 函数
    函数声明格式:
func 函数名(参数名称1:类型,参数名称2: 类型...)-> 返回类型{}
func <#name#>(<#parameters#>) -> <#return type#> {
    <#function body#>
}
func greet(person: String, day: String) -> String {
    return "Hello \(person), today is \(day)"
}
greet(person: "Marry", day: "Sunday")
  1. 嵌套函数
    访问外部函数声明的变量:
func returnFifteen() -> Int {
    var y = 10
    func add() {
        y += 5
    }
    add()
    return y
}
returnFifteen()

一个函数返回值可以是另一个函数:

func makeIncrementer() -> ((Int) -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)

一个函数的参数可以是另一个函数:

func hasAnyMatches(list: [Int], condition: (Int) -> Bool) ->Bool{
        for item in list{
            if condition(item) {
                return true
        }
    
    return false
}
func lessThanTen(number: Int) -> Bool {
    return number < 10
}
var numbers = [20, 19, 7, 12]
hasAnyMatches(list: numbers, condition: lessThanTen)
  1. 输入输出参数
    一般情况下不允许修改函数参数的值,试图在函数体中更改参数值将编译错误。如果要修改参数的值,需要在函数定义时,使用inout关键字;在函数调用时,参数名前加 “&”:
func swap(first a : inout Int, second b : inout Int){
    let temp = a
    a = b
    b = temp
}
var x1 = 10,y1 = 20
swap (first: &x1, second: &y1)
print(x1, y1)
  1. 可变参数
    可变参数可以接受0个或多个值,需要在函数定义参数时类型的后面加“...”
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
arithmeticMean(3, 8.25, 18.75)
// returns 10.0
  1. 闭包
    函数实际上是闭包的一种特殊情况:可以稍后调用的代码块。闭包是自包含的功能块,可以在代码中传递和使用。全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一:

实例:

numbers.map({(number: Int) -> Int
    in let result = 3 * number
    return result
})
上一篇下一篇

猜你喜欢

热点阅读