更新於 2024/06/23閱讀時間約 5 分鐘

Swift入門-Day7:函數

函數的基本結構

函數聲明

在Swift中,函數使用func關鍵字來聲明。這是基本的函數聲明方式:

func sayHello() {
print("Hello, world!")
}

函數表達式

Swift不支持類似JavaScript的函數表達式,但你可以將函數賦值給變數或常量,然後使用這些變數或常量來調用函數。

let greeting = sayHello
greeting()

匿名函數

匿名函數在Swift中稱為閉包。閉包是一種自包含的代碼塊,可以在代碼中傳遞和使用。

let multiply = { (a: Int, b: Int) -> Int in
return a * b
}

let product = multiply(4, 5)
print(product) // 20

函數的呼叫

函數呼叫使用函數名稱後跟一對括號,括號內包含任何參數。

sayHello()

函數的參數

單個參數

函數可以接受單個參數。

func greet(name: String) {
print("Hello, \\\\(name)!")
}

greet(name: "Alice") // Hello, Alice!

多個參數

函數可以接受多個參數。

func add(a: Int, b: Int) -> Int {
return a + b
}

let sum = add(a: 3, b: 4)
print(sum) // 7

預設參數值

可以為函數參數提供預設值。

func greet(name: String = "Guest") {
print("Hello, \\\\(name)!")
}

greet() // Hello, Guest!
greet(name: "Bob") // Hello, Bob!

剩餘參數

使用剩餘參數(變長參數)來接收不定數量的參數。

func sum(numbers: Int...) -> Int {
return numbers.reduce(0, +)
}

let result = sum(numbers: 1, 2, 3, 4, 5)
print(result) // 15

函數的返回值

單個返回值

函數可以返回單個值。

func square(number: Int) -> Int {
return number * number
}

let squared = square(number: 4)
print(squared) // 16

多個返回值

使用元組來返回多個值。

func minMax(numbers: [Int]) -> (min: Int, max: Int)? {
guard let first = numbers.first else {
return nil
}
var currentMin = first
var currentMax = first

for number in numbers.dropFirst() {
if number < currentMin {
currentMin = number
} else if number > currentMax {
currentMax = number
}
}
return (min: currentMin, max: currentMax)
}

if let result = minMax(numbers: [1, 2, 3, 4, 5]) {
print("Min is \\\\(result.min) and Max is \\\\(result.max)")
}
// Min is 1 and Max is 5

返回物件

函數可以返回物件或自定義型別的實例。

struct Person {
var name: String
}

func createPerson(name: String) -> Person {
return Person(name: name)
}

let person = createPerson(name: "Alice")
print(person.name) // Alice

返回函數

函數可以返回另一個函數。

func makeIncrementer(increment amount: Int) -> ((Int) -> Int) {
func incrementer(value: Int) -> Int {
return value + amount
}
return incrementer
}

let incrementByTen = makeIncrementer(increment: 10)
print(incrementByTen(5)) // 15

這些是Swift中有關函數的基本概念和操作方法。理解並掌握這些內容將幫助你在Swift編程中更好地使用和管理函數。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.